ch6-32~35 생성자,기본 생성자

ch6-32 생성자(constructor)

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

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

 // 원하는 값으로 초기화하기
Time t = new Time();
t.hour = 12;
t.minute = 34;
t.second = 56;

-> Time t = new Time(12,34,45);
 // 위와 같은 코드는 생성자를 추가해줘야한다.

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

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

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

→ 클래스 이름(타입변수명 , 타입변수명, ... ) { }

class Card() {

	// 생성자 오버로딩
	Card() { } // 매개변수가 없는 생성자
	Card(String kind, int number) { }  // 매개변수가 있는 생성자
} 

ch6-33 기본 생성자(default constructor)

  • 매개변수가 없는 생성자

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

클래스이름() { } // 기본생성자

Point()  {} // Point 클래스의 기본생성자
class Data_1 {
	Data_1(){} // 기본생성자를 추가 -> 기본생성자가 없어서 컴파일러에서 자동추가
	int value;
}

class Data_2 {
	int value;
	Data_2(){}
	 
//	Data_2(){} // 기본생성자 추가 
	Data_2(int x) {   // 매개변수가 있는 생성자.
		
		value = x;
	}
}

class Ex6_11 {
	public static void main(String[] args) {
		Data_1 d1 = new Data_1();
		Data_2 d2 = new Data_2(); // compile error발생 -> 기본생성자 추가해야함.
		
		
	}
}

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

class Car {
	String color;		// 색상
	String gearType;	// 변속기 종류 - auto(자동), manual(수동)
	int door;			// 문의 개수
	
	Car(){}
	
	Car(String c, String g, int d) { // 매개변수가 있는 생성자
		color = c;
		gearType = g;
		door = d;
	}
}

class Ex6_12 {
	public static void main(String[] args) {
		Car c = new Car("white","auto",4); // Car(Sting c , String g , int d) 호출
	
		System.out.println(c.color);
		System.out.println(c.gearType);
		System.out.println(c.door);
	}
}

// 출력결과
white
auto
4

좋은 웹페이지 즐겨찾기