자바 생성자에 관해 개념이 확실히 서지 않아서 정리의 필요성을 느꼈다.
생성자(constructor)
- 객체 생성시 변수에 초기값을 제공하고 필요한 초기화 절차를 실행하는 메소드
- 인스턴스 변수를 초기화하는 것이 목적, 하나의 변수를 동시에 여러개의 값으로 초기화 할 수 있다.
생성자의 특징
- 인스턴스가 생성될 때마다 호출되는 '인스턴스 변수의 초기화 메소드'
- 인스턴스 변수의 초기화 또는 인스턴스 생성시 실행할 작업에 사용
- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.
- 생성자는 메소드처럼 클래스 안에 선언되고 구조도 메소드와 유사하지만, 리턴값이 없다.
생성자의 조건
- 생성자의 이름은 클래스의 이름과 같아야한다.
- 생성자는 리턴값이 없다. void를 쓰지 않는다.
*** 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. ***
- 형식 : 클래스 이름(타입 변수명, 타입 변수명){
}
디폴트 생성자
- 매개변수가 없는 생성자
- 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 자동으로 추가한다.
- 형식 : 클래스이름(){}
this 생성자
- 자기자신을 직접 참조할 수 있는 참조변수
- 클래스 내에서 자신의 멤버들을 직접 참조
- 클래스 내에서 자기 자신을 참조할 수 있는 유일한 키워드
this.멤버변수
this.멤버메소드
this 생성자를 사용하는 이유
- 생성자는 마음대로 호출할 수 있는 메소드가 아니다. 객체의 메모리가 생성될 때 new와 함께 호출된다.
- 예외적으로 생성자를 호출할 수 있게 해주는 방법이 this다.
this 생성자로 호출할 때 규칙
- 반드시 생성자 내에서 다른 생성자를 호출해야 한다.
- 생성자에서 this를 이용한 생성자 호출은 어떠한 작업보다도 먼저 선행되어야 한다.
- 즉, this 생성자 호출 앞에 어떠한 구문도 사용할 수 없다.
- this를 이용해 생성자 내에서 다른 생성자를 호출할 수 있다.
- 생성자를 재사용 할 수 있다.
'나만의 정리' 카테고리의 다른 글
스트림 정리 (0) | 2018.05.21 |
---|---|
자바 API 문서 찾아 보는 방법 (0) | 2018.04.24 |
자바 String, StringBuilder, StringBuffer 차이점 비교 (0) | 2018.02.07 |
형 변환이 헷갈릴 때, length와 length()의 차이, charAt(i) (0) | 2018.01.29 |
static 메소드 선언 (0) | 2018.01.29 |
댓글