인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'
메서드명은 클래스명과 동일
return value
가 없다
overload
가능
class
생성시 자동 호출(1번)
별도의 호출 불가능 (!= 초기화)
생략 가능.
없을 경우 컴파일러가 자동적으로 추가해줌(기본 생성자)
클래스이름(타입 변수명, 타입 변수명, ...) {
// 인스턴스 생성 시 수행 될 코드
// 주로 인스턴스 변수의 초기화 코드를 적는다
}
수행되는 과정
1. 연산자 new에 의해 메모리(heap)에 BaseClass 클래스의 인스턴스가 생성된다.
2. 생성자 BaseClass()가 호출되어 수행된다.
3. 연산자 new의 결과로, 생성된 BaseClass 인스턴스의 주소가 반환되어 참조변수 bc에 저장된다.
public class Mainclass {
public static void main(String[] args) {
BaseClass bc= new BaseClass(); // 객체생성 bc -> instance
// constructor가 실행됨
BaseClass bc1 = new BaseClass(5);
BaseClass bc2 = new BaseClass(3, "성춘향");
// bc.BaseClass(); // 별도의 호출 불가능
}
}
class BaseClass {
int number;
String name;
public BaseClass() { // 매개변수가 없는 constructor
System.out.println("BaseClass BaseClass()");
}
public BaseClass(int num) { // 매개변수가 있는 constructor
System.out.println("BaseClass BaseClass(int num)");
}
public BaseClass(int num, String na) {
System.out.println("BaseClass BaseClass(int num, String na)");
number = num;
name = na;
}
}
// console
/*
BaseClass BaseClass()
BaseClass BaseClass(int num)
BaseClass BaseClass(int num, String na)
*/