클래스의 기본 문법 - 2. 클래스의 활용

Ⅱ. 클래스의 활용

1. 클래스의 구조

 - 클래스(자료형)로 데이터(객체)를 만듦

 - class 클래스명{ }

    - 패키지 안에 클래스명은 겹칠 수 없음

    - 클래스는 여러 개 있어도 되나 메인 메소드는 한 개 이어야 함

    - 클래스명은 대문자로 시작

 - 클래스 밖에 올 수 있는 3가지

    - package

        - .java 파일의 폴더(패키지) 위치

        - default의 경우 폴더가 생성되지 않음

    - import

        - 외부 라이브러리를 가져옴

        - 다른 폴더(패키지) 위치의 클래스를 참조

    - 외부클래스 (External class)

        - 외부에 포함된 또 다른 클래스

        - public 키워드를 사용할 수 없음

 

 클래스 안에 올 수 있는 4가지

    - 필드 (멤버)
        - 클래스 특징(속성)을 나타내는 변수 (int age =20) 
    - 메소드 (멤버)
        - 클래스의 기능 (void working( ){…})
        - 리턴타입 + 메소드이름 + ( ) + { }로 구성
    - 생성자
        - 객체 생성 기능 (생성자이름+( )+{ })
        - 생성자의 이름은 클래스 이름과 동일하여야 함
    - 내부클래스 (inner class) (멤버)
        - 클래스 내부 정의된 클래스

 

2. 클래스(Class)와 객체(Object)

 클래스(Class), 객체(Object), 그리고 인스턴스(Instance)

 - 클래스 : 설계도

 - 객체 : 어떤 대상

 - 인스턴스 : 설계도를 토대로 만든 어떤 대상

    ※ 객체(Object) = 클래스(Class)의 인스턴스(Instance)

 

3. 객체의 생성 및 활용

 - 객체의 생성

// Example
// Car라는 이름의 참조자료형이 만들어짐
class Car {
	String name = "아반떼";
    void drive() {
    	System.out.println("출발");
    }
    void breaking() {
    	System.out.println("정지");
    }
}

public class Main {
	public static void main(String[] args) {
    	Car redCar = new Car();		
        Car blueCar = new Car();
        // new를 하면 새로운 데이터로 적재하므로 redCar과 blueCar은 다름
        redCar.drive();					// 출발
        blueCar.drive();				// 출발
        redCar.breaking();				// 정지
        blueCar.breaking();				// 정지
        System.out.println(redCar.name);		// 아반떼
        System.out.println(blueCar.name);		// 아반떼
        System.out.println(redCar == blueCar);		// false (주소가 다름)