생성자
Constructor(생성자)
- 인스턴스를 생성할 때 호출하는 특별한 메소드
규칙
1) 이름은 반드시 클래스 이름과 동일하게 생성2.
2) 클래스 안에 만들지 않아도 자신의 상위 클래스 생성자를 호출하는 매개변수가 없는 생성자가 1개 제공
생성자를 직접 만들면 자동으로 만들어진 생성자는 소멸.
- 생성자는 반환값 없음(리턴 타입 없음)
- 생성자도 overloading 가능
- 생성자는 new를 이용해서 호출해야 하고, 생성자는 heap에 메모리 할당을 한 후 그 참조를 리턴.
- 생성자를 정의하는 목적은 대부분 property의 초기화.
* 드물게 인스턴스가 만들어질 때 다른 작업을 수행하도록 하기 위해서도 생성
[인스턴스 생성]
클래스이름 인스턴스이름 = new 생성자(매개변수) // new하고 클래스이름이 아닌 생성자임, 일반적으로 클래스이름과 생성자 이름이 같기 때문에 혼동
default constructor
- 눈에보이지는 않지만 자바가 생성해주는 생성자
- 매개변수는 없고 상위 클래스의 생성자를 호출하는 생성자
클래스 확인
- 생성자 종류만큼 인스턴스를 생성하는 방법이 제공
- 생성자의 종류가 10개이면 인스턴스를 만드는 방법도 10개
- 클래스의 메소드를 사용하고자 하는 경우 인스턴스를 만들어야 하는 상황이면
생성자를 확인해야함.
1) static 초기화 블럭
static{
내용
} -> 클래스가 처음 불려질. 때 한번만 수행
* 모바일 어플리케이션 실행시 처음에 한번 나오는 부분(업데이트 라거나..)이런 부분을 static초기화 블럭에 코딩함
2) 일반 초기화 블럭
{
내용
}
- static초기화 블럭에서는 static 변수와 지역변수만 사용이 가능.
- 인스턴스가 소유하는 프로퍼티는 클래스가 만들어지고 난 다음에 생성이 가능하기 때문에
static 초기화 블럭이 만들어 질 때는 인스턴스가 없다
- 초기화 작업을 할 때 생성자 대신에 초기화 블럭을 이용해도 됨.