반응형
생성자(constructor)
- 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'
인스턴스 = 객체(iv 묶음) 즉, iv를 초기화 하는 메서드가 생성자이다.
1. 객체생성 , 2. iv 초기화와 같은 행동을 계속 번갈아가면서 해줘야하는 불편함이 있다.
class Ex6_10_1 {
public static void main(String args[]) {
Time t = new Time(); // 객체생성
t.hour = 12; // iv 초기화
t.minute = 34;
t.second = 56;
}
}
class Time{
int hour;
int minute;
int second;
}
생성자 추가 후, 생성자 호출로 간단하게 나타낼 수 있다.
Time t = new Time(12 ,34 ,56);
리턴 값이 없을 때는 메서드 앞에 void를 붙이는데, 생성자인 경우에는 void를 붙이지 않는다. (항상 반환 값이 없기 때문)
기본 생성자(default constructor)
- 매겨번수가 없는 생성자
- 생성자가 하나도 없을 때만, 컴파일러가 자동 추가
클래스이름() {} // 기본 생성자
Point() {} // Point클래스의 기본 생성자
cannot resolve symbol : 이름에 문제, 못찾겠다
기본생성자를 추가 해줘야 한다.
Data_2(int x) 위에 Data_2(){}를 넣는다.
class Data_1는 생성자가 하나도 없기 때문에, 컴파일러가 기본 생성자를 자동 추가해줘서 정상 실행되는 것이다.
class Data_1{
int value;
Data_1(){}
}
위 코드는 상단 클래스 Data_1의 기본 생성자를 컴파일러가 자동으로 생성해준다.
class Data_1 {
int value;
}
class Data_2 {
int value;
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발생
}
}
반응형
'java↗' 카테고리의 다른 글
java Scanner (0) | 2024.04.17 |
---|---|
java 변수(타입),형변환 (0) | 2024.04.12 |
java↗7-14. 오버로딩(overloading) (1) | 2024.03.27 |
java↗7-13. static 메서드와 인스턴스 메서드 (0) | 2024.03.27 |
java↗7-12. 기본형 매개변수, 참조형 매개변수 (0) | 2024.03.27 |