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
Author And Source
이 문제에 관하여(ch6-32~35 생성자,기본 생성자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dbswhd493/ch6-3235-생성자기본-생성자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)