생성자(Constructor)

김호준·2021년 10월 20일
0

1. 생성자란 ?

  • 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다.
    • 생성자의 이름은 클래스의 이름과 같아야 한다.
    • 생성자는 리턴값이 없다.
class Point {
	Point() {
    		...
    	}
        
        Point(int x, int y) {
        	...
        }
}
  • 기본 생성자가 컴파일러에 의해서 추가되는 경우는 클래스에 정의된 생성자가 하나도 없을 때 뿐이다.
    • 그러므로 생성자가 하나라도 있다면 기본 생성자를 직접 추가해주어야 한다.

2. this 와 this()와 this(매개변수)

  • this() - 생성자에서 다른 생성자 호출하기
    • 생성자의 이름으로 클래스이름 대신 this를 사용한다.
    • 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
  • this - 객체 자신을 가리키는 참조변수
    • this 는 인스턴스 자신을 가리키는 참조변수로 인스턴스의 주소가 저장되어 있다.
    • this를 사용할 수 있는 것은 인스턴스 멤버 뿐이다. static 메서드에서는 this를 사용할 수 없다.

3. 변수의 초기화

  • 멤버변수는 자동적으로 변수의 자료형에 맞는 기본값으로 초기화되어 초기화하지 않고 사용하여도 되지만, 지역변수는 사용하기 전 반드시 초기화하여야 한다.

  • 멤버변수의 초기화 순서서는 다음과 같다.

      1. 클래스변수의 초기화
      1. 인스턴스 변수의 초기화
  • 클래스 초기화 블럭은 아래와 같이 작성하고 처음 메모리에 로딩될 때 한번만 수행된다.

  • 인스턴스 초기화 블럭은 아래와 같이 작성하고 인스턴스가 생성될 때 마다 수행된다.

-- 생성자 초기화 블럭
static {

}

-- 인스턴스 초기화 블럭
{

}
profile
Go-getter Developer

0개의 댓글