Published 2022. 2. 13. 10:00

Ch6-32_생성자(constructor)

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

2. 인스턴스 생성 시 수행할 작업(iv 초기화)에 사용

Time t = new Time();
t.hour = 12;
t.minute = 34;
t.second = 56;

Time t = new Time(12, 34, 56);

 

 

1. 이름이 클래스 이름과 같아야 한다.

2. 리턴 값이 없다.(void 안 붙임)

3. 모든 클래스는 반드시 생성자를 가져야 한다.

 

클래스 이름(타입 변수명, 타입 변수명, ...) {
	// 인스턴스 생성 시 수행될 코드,
    // 주로 인스턴스 변수의 초기화 코드를 적는다.
}

 

Ch6-33_기본 생성자(default constructor)

생성자가 하나도 없을 때만, 컴파일러가 기본 생성자 자동 추가

class Data1 {
	int value;
    // Data1(){} // 생성자가 0개라 기본 생성자 자동 추가
}

class Data2 {
	int value;
    
    Data2(int x) { // 매개 변수가 있는 생성자 그래서 기본 생성자를 따로 추가 해야함
    	value = x;
    }
}
class test {
	public static void main(String[] args) {
    	Data1 d1 = new Data1(); // OK
        Data2 d2 = new Data2(); // compile error 발생
    }
}

// 결과 test.java;15 : cannot resolve symbol
// symbol : constructor Data2() // 못 찾겠다

 

 

Ch6-34_매개변수가 있는 생성자

class Car {
	String color;
    String gearType;
    int door;
    
    Car() {} // 기본 생성자
    Car(String c, String g, int d) { // 매개변수가 있는 생성자
    	color = c;
        gearType = g;
        door = d;
    }
}

'JAVA > Chapter6' 카테고리의 다른 글

Ch6-38_변수의 초기화  (0) 2022.02.13
Ch6-36_생성자 this()  (0) 2022.02.13
Ch6-30_오버로딩(overloading)  (0) 2022.02.13
Ch6-26_static 메서드와 인스턴스 메서드  (0) 2022.02.13
Ch6-24_참조형 매개변수  (0) 2022.02.13
복사했습니다!