[JAVA]객체지향 기초 - 생성자
카테고리: JAVA
태그: Constructor OOP Overload Java
[13] 객체지향 기초 - 생성자
13.1. 생성자 (Constructor)
- 객체를 생성할 때만 호출하는 특수한 메서드
- new 연산자를 통해 객체의 생성자를 이용한 객체 생성
- 생성자명은 클래스명과 같다
- 반환형이 없는 메서드의 형태를 가진다
-
생성자 없이 클래스를 정의할 경우 매개변수가 없는 ‘디폴트’ 생성자가 자동으로 생성된다
- 객체 생성 시 변수 및 상수 초기화 또는 다른 초기화 기능을 수행하는 메서드 호출
- 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 따라 Private으로 선언하기도 한다
13.2. 기본 생성자 (Default Constructor)
- 생성자명은 클래스명과 같다
- 반환형과 매개변수가 없는 메서드
- 실질적 기능은 없다(구현부 없음)
- 컴파일러를 이용해 자동 생성 가능(클래스명 참조)
- 클래스에는 최소 하나 이상의 생성자가 존재
- 생성자를 구현하지 않았더라도 new 키워드를 이용해 호출할 수 있다
13.3. 생성자 만들기
- 필요에 따라 생성자를 직접 구현하기도 한다.
13.4. 여러가지 생성자 정의 : 오버로드(Overload)
- 하나의 클래스 안에서 동일한 이름을 가진 메서드를 여러 개 정의하는 것
- 필요에 따라 미리 정의된 생성자를 호출하여 사용
- 특징
- 동일한 메서드명을 가진다
- 매개변수의 개수 및 자료형이 다르다
- 반환형과 변수명은 무관하다
- 유사한 작업이지만 전달받는 매개변수에 따라 다른 연산이 필요할 경우 유용하다
cf) 오버라이딩(Override) : change, modify
13.5. this()
- 생성자 내부에서만 사용할 수 있는 생성자
- 같은 클래스 내에서 다른 생성자를 호출할 때 사용
-
생성자의 첫 문장에서 호출해야 한다(다른 코드들 보다 상위에 위치해야 한다)
- this와의 차이
- 인스턴스 자신을 가리키는 참조변수
- 인스턴스 주소가 저장되어 있다
- 모든 클래스에서 지역변수로 숨겨진 채 존재
- new 연산자를 사용해 인스턴스를 생성할 때 비로소 heap 영역에 할당되며 활성화된다
댓글 남기기