생성자

 

객체가 생성될 때 (Instance 영역에 올라갈 때) 그 객체가 기본적으로 가지고 있어야 할 값이나 처리한 코드를 넣어주는 method의 일종이다.

반환형은 없고, 클래스의 이름과 동일하게 작성한다.

 

class Test01{
    public Test01(){
    }
}

 

생성자는 객체화 할 때 자동으로 호출되며, method를 호출하듯이 후출할 수 있다.

코드 작성시 생성자를 하나도 정의 하지 않으면, compiler가 컴파일시 자동으로 파라메터가 없는 기본 생성자를 생성한다.

생성자는 상속되지 않는다. 그리고 this나 super로 class의 생성자나 부모클래스의 생성자 호출은 가능하다.

overloading은 지원된다.

 

접근지정자 클래스명 ()

 

public : 외부 class에서 객체화 가능

protected : 동일 package 내에서는 객체화 가능, 외부 package 에서는 상속받은 자식 클래스만 객체화 가능

private : 내 class 안에서만 객체화 가능 (singletone pattern 적용시)

default : 동일 package 에서만 객체화 가능

 

생성자 조건

 

생성자의 이름은 클래스의 이름과 같아야 한다.

생성자는 리턴값이 없다. (그러나 void를 사용하지 않는다)

 

기본생성자 default constructor

 

매개변수가 없는 생성자이며, 클래스에 생성자가 없으면 컴파일러가 기본생성자를 추가한다.

 

생성자에서 다른 생성자 호출

 

생성자의 이름으로 클래스 이름 대신 this를 사용

한 생성자에서 다른 생성자를 호출할 때 는 반드시 첫 줄에서만 호출 가능

 

참조변수 this

 

인스턴스 자신을 가리키는 참조변수

인스턴스의 주소가 저장되어 있음

모든 인스턴스 method에 지역변수로 숨겨진 채로 존재