1. 생성자란 ?
- 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다.
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴값이 없다.
class Point {
Point() {
...
}
Point(int x, int y) {
...
}
}
- 기본 생성자가 컴파일러에 의해서 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때 뿐이다.
- 그러므로 생성자가 하나라도 있다면 기본 생성자를 직접 추가해주어야 한다.
2. this 와 this()와 this(매개변수)
- this() - 생성자에서 다른 생성자 호출하기
- 생성자의 이름으로 클래스이름 대신 this를 사용한다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
- this - 객체 자신을 가리키는 참조변수
- this 는 인스턴스 자신을 가리키는 참조변수로 인스턴스의 주소가 저장되어 있다.
- this를 사용할 수 있는 것은 인스턴스 멤버 뿐이다. static 메서드에서는 this를 사용할 수 없다.
3. 변수의 초기화
-
멤버변수는 자동적으로 변수의 자료형에 맞는 기본값으로 초기화되어 초기화하지 않고 사용하여도 되지만, 지역변수는 사용하기 전 반드시 초기화하여야 한다.
-
멤버변수의 초기화 순서서는 다음과 같다.
-
클래스 초기화 블럭은 아래와 같이 작성하고 처음 메모리에 로딩될 때 한번만 수행된다.
-
인스턴스 초기화 블럭은 아래와 같이 작성하고 인스턴스가 생성될 때 마다 수행된다.
-- 생성자 초기화 블럭
static {
}
-- 인스턴스 초기화 블럭
{
}