생성자의 개념과 특징
생성자
- 객체가 생성될 때 초기화 목적으로 생성되는 메소드
- 객체가 생성되는 순간에 자동 호출
생성자의 특징
- 생성자의 이름은 클래스 이름과 동일
- 생성자는 여러 개 작성 가능(다형성)
- 단 인자의 개수 차이는 존재해야 함
public class Circle {
public Circle() { //매개 변수 없는 생성자
~~~
}
public Circle(int r, String n) { //2개의 매개 변수를 가진 생성자
~~~
}
}
- 생성자는 객체 생성시 한 번만 호출
- 자바에서 객체 생성은 반드시 new 연산자로 함
Circle pizza = new Circle(10, "자바피자"); //생성자 Circle(int r, String n)호출
Circle donut = new Circle(); //생성자 Circle()호출
//객체로 쓸 때는 pizza, donut과 같이 이름을 새로 부여해줘야 됨
- 생성자의 목적은 객체 생성 시 초기화
- 생성자는 리턴 타입을 지정할 수 없음
- void 사용도 안 됨
기본 생성자(default constructor)
- 인자가 아무것도 없는 생성자
- 매개 변수 없고, 아무 작업 없이 단순 리턴하는 생성자
- 디폴트 생성자라고도 불림
class Circle {
public Circle() //기본 생성자 생성
}
기본 생성자의 자동 생성
- 클래스에 생성자가 하나도 선언되어 있지 않을 때
- 컴파일러에 의해 기본 생성자 자동 생성
- 단, 클래스에 생성자가 선언되어 있는 경우에는 기본 생성자를 자동 생성해주지 않음
this 레퍼런스 - this.
- 객체 자신에 대한 레퍼런스
- this.멤버 형태로 멤버를 접근할 때 사용
- this.은 객체 자신에 대한 레퍼런스
- this와 this()는 다름
- this.는 메소드에서 사용되며 현재 겍체를 가리킴
- static 메소드에서는 사용할 수 없음
this()로 다른 생성자 호출
- 같은 클래스의 다른 생성자 호출
- 생성자 내에서만 사용 가능
- 생성자 코드의 제일 처음에 있어야 함
- 생성자가 있을 때, this()로 다른 생성자 호출 가능
'Programming Languages > Java' 카테고리의 다른 글
[5장] Java 상속의 개념과 protected 접근 지정 (0) | 2021.05.04 |
---|---|
[4장] 객체 배열/메소드 (0) | 2021.04.13 |
[4장] 객체 지향의 특징/ 자바의 클래스와 객체 (0) | 2021.04.10 |
[3장] Java 배열 선언 및 생성/ length 필드/ for-each문/ 2차원 배열 (0) | 2021.04.05 |
[3장] Java 예외 처리 (0) | 2021.03.30 |