생성자
인스턴스(객체)가 생성될때마다 호출되는 '인스턴스(iv) 초기화 메서드'
Time t = new Time();
t.hour = 1;
t.minute = 20;
t.second = 33;
Time t = new Time(1,20,33); 이렇게 간단하게 초기화!
생성자 메서드 작성법
- 이름이 클래스 이름과 같아야 한다
- 리턴값이 없다.(그러나 void 안붙임.항상 리턴값이 없어서)
- 모든 클래스는 반드시 생성자를 가져야 한다(1+)
=클래스이름
생성자이름(타입 변수명,타입 변수명..){
//인스턴스 생성시 수행될 코드
//주로 iv 초기화 코드를 적는다
}
기본 생성자(default constructor)
- 매개변수가 없는 생성자
- 원래 직접 작성해줘야 하는데 생성자가 하나도 없을때만
컴파일러가 자동추가해줌
- 하나라도 생성자가 있으면 기본생성자 꼭 추가해야함
클래스이름(){ }
Point(){ } //Point클래스의 기본 생성자
public class Oop13_constructor {
public static void main(String[] args) {
Data1 data1 = new Data1();
//The constructor Data2() is undefined
//기본생성자가 없어서 찾지 못함. 기본생성자 추가해줘야함.
Data2 data2 = new Data2();
}
}
class Card3{
Card3(){ //매개변수없는 생성자
//인스턴스 초기화 작업
}
Card3(String kind,int number){ //매개변수있는 생성자
//인스턴스 초기화 작업
}
}
class Data1{
//생성자가 하나도 없어서 기본생성자 컴파일러가 자동추가해줬음
int value;
}
class Data2{
int value;
Data2(){ }
Data2(int x){
value = x;
}
}