생성자(Constructor) 란?
생성자는 new 연산자와 같이 사용되어 객체를 생성할 때 호출되며, 객체 생성 후
생성자 몸체를 실행하여 초기화를 담당한다.
# 특징
1 . 클래스와 동일한 이름을 갖는다.
2 . 하나의 클래스에는 하나 이상의 생성자를 갖는다.
3 . 생성자는 리턴 타입이 존재하지 않는다.
4 . 생성자는 일반 메소드처럼 호출 할 수 없으며 객체를 생성할 때 new 다음에 기술한다.
5 . new 생성자(); 처럼 생성자를 호출하면 객체의 메모리가 할당되고 생성자의 몸체가
실행되어 초기화를 담당한다.
6 . 생성자는 중복 정의가 가능하다.
-> this(), super();
7 . 생성자를 만들지 않으면 컴파일러는 아무런 코드도 없는 디폴트 생성자를 만든다.
-> public 클래스명() {}
8 . 접근 제한 수식어인 public, protected, private만을 쓸 수 있으며, abstract, final, native, static, strictfp,
synchronized 등의 수식어를 사용할 수 없다.
# 디폴트 생성자 (Default Constructor) ?
생성자를 정의하지 않는 경우에 컴파일러는 인수도 없고, 아무런 기능도 지니지 않는 생성자를
자동 삽입하는데 이를 디폴트 생성자(기본 생성자)라 함.
- 모든 클래스에 적어도 하나의 생성자가 있음을 보장
- 생성자가 하나라도 존재하면 컴파일러는 디폴트 생성자를 추가하지 않음
# 여러 종류의 생성자
# 생성자 중복 정의(Overloading)
생성자도 일반 메소드처럼 중복 정의(overloading)가 가능. (인수의 개수나 인수의 타입이 다르게 정의)
# this
- this는 현재 클래스의 인스턴스로 객체 자신에 대한 참조 값을 가짐.
- this는 현재 클래스의 인스턴스를 참조 하기 때문에 생성자나 인스턴스 메소드 내에서만 사용하며
클래스 메소드에서는 사용할 수 없다.
- 생성자의 선두에서 this([인수], ...)를 이용하여 중복 정의된 다른 생성자를 단 한번 호출할 수 있다.
[사용 형식]
ㄱ . 객체 자신의 인스턴스 변수 참조
-> this.인스턴스변수
ㄴ . 객체 자신의 인스턴스 메소드 호출
-> this.인스턴스메소드([인수])
ㄷ . 메소드에서 자신의 객체 리턴
-> return this;
ㄹ . 생성자의 선두에서 중복 정의된 다른 생성자 호출
-> this([인수, ...]);
'JAVA' 카테고리의 다른 글
[JAVA] 파일처리 예시 (0) | 2020.08.18 |
---|---|
[JAVA] 입출력 스트림 (I/O Stream) (0) | 2020.08.18 |
[JAVA]인터페이스 (Interface) (1) | 2020.08.11 |
[JAVA] String _ API (0) | 2020.08.06 |
[JAVA] 비정형인자 (0) | 2020.08.04 |