Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

기록

[JAVA] 생성자 본문

공부/JAVA

[JAVA] 생성자

aoieuo 2020. 7. 4. 23:40

<생성자란?>

인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'

 - 인스턴스 변수를 초기화하는 메서드이다.

 - 모든 클래스에는 반드시 하나 이상의 생성자가 필요하다.

 

Card c = new Card();

1. 연산자 new에 의해서 메모리(heap)에 Card 클래스의 인스턴스가 생성된다.

2. 생성자 Card()가 호출되어 수행된다.

3. 연산자 new의 결과로, 생성된 Card인스턴스의 주소가 반환되어 참조변수 c에 저장된다.

 

<생성자 조건>

 - 생성자의 이름은 클래스의 이름과 동일하다.

 - 생성자는 리턴타입이 '없다.' (void가 아님)

 

<생성자 - 기본생성자>

 - 기본생성자 (Default Constructor)

  : 매개변수가 없는 생성자

    클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다.

    생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다.

 

<생성자 - this() 를 이용한 호출>

 - this(): 같은 클래스의 다른 생성자를 호출할 때 사용한다

 - 다른 생성자 호출은 생성자의 첫 문장에서만 가능하다.

class Car {
    String color;
    String gearType;
    int door;
    
    Car() {
        this("white", "auto", 4);
    }
    
    Car(String c, String g, int d) {
        color = c;
        gearType = g;
        door = d;
    }
}

 

- 생성자를 이용한 인스턴스의 복사

  - 생성자에서 참조변수를 매개변수로 받아서 인스턴스 변수들의 값을 복사한다

  - 똑같은 속성값을 갖는 독립적인 인스턴스가 하나 더 생성된다

class Car {
    String color;
    String gearType;
    int door;
    
    Car() {
        this("white", "auto", 4);
    }
    
    Car(String c, String g, int d) {
        color = c;
        gearType = g;
        door = d;
    }
    
    Car(Car c) {
        color = c.color;
        gearType = c.gearType;
        door = c.doorl
    }
}

class CarTest3 {
    public static void main(String[] args) {
        Car c1 = new Car();
        Car c2 = new Car(c1); //c1과 동일한 인스턴스 생성
    }
}

'공부 > JAVA' 카테고리의 다른 글

[JAVA] 메서드  (0) 2020.07.06
[JAVA] 변수  (0) 2020.07.05
[JAVA] 클래스와 객체  (0) 2020.07.04
[JAVA] 조건문과 반복문  (0) 2020.07.04
[JAVA] 자바 개요  (0) 2020.07.04
Comments