The Debugging Chronicles : "코드의 미학"

Mentor JAVA - section09. 생성자 본문

JAVA/Mentor JAVA

Mentor JAVA - section09. 생성자

sweetseonah1004 2024. 7. 21. 13:07

생성자의 특징

- 생성자란?

· 클래스를 구성하는 구성요소 중 하나로, 객체를 생성할 때 호추로디어 객체의 초기화를 담당하는 특별한 메서드이다.

· 객체를 생성하고 초기화를 하기 위해서는 반드시 생성자를 호출해야하기 때문에 객체를 생성해야하는 모든 라이브러용 클래스는 모두 생성자를

가지고 있다.

· 반환 타입이 없으며, 클래스 이름과 동이하다는 특징이 있다.

클래스명(매개변수1, 매개변수2, ...){ 초기화 코드; }

· 생성자의 호출 위치는 정해져 있으며, 클래스를 기반으로 객체를 생성할 때 new와 함게 사용하여 호출된다.

클래스명 객체명 = new 클래스명(); ---------이 부분이 생성자이다.

- 기본 생성자

· java의 모든 클래스에는 하나 이상의 생성자가 정의되어 있어야 하기 때문에 자바 컴파일러가 기본 생성자를 자동으로 제공해준다.

우리 눈에만 안 보일 뿐 생략되어 있다.

· 단, 개발자가 직접 생성자를 선언한다면, 기본 생성자는 자동으로 선언되지 않는다.

클래스명(){ // 매개변수 없음 // 안에도 비어있음 }

- 생성자 선언 이유

· 객체를 사용하기 위해 객체를 메모리에 올리기 위해선 객체가 초기화 될 필요가 있으며, 이를 위해 생성자가 선언되는 것이다.

· 객체 멤버에 접근이 가능한 일반 메서드처럼 객체 멤버의 데이터를 초기화 하기 위해 사용된다.

· 생성자 역시 매개변수를 통해 값을 전달할 수 있기 때문에 각각의 개체의 필드값이 다를 때 사용된다.

생성자 오버로딩

- 오버로딩

· 생성자/메소드의 이름이 같더라도 받는 매개변수의 값이 다르다면, 동일한 이름으로 선언이 가능한 것을 말한다.

· 매개변수 없이, 또는 1개, 2개 등 외부에서 제공할 수 있는 데이터만큼 생성자를 다양한 형태로 선언할 수 있는 것을 '생성자 오버로딩'이라고

한다.

· 매개 변수의 갯수만이 아닌 매개변수의 자료형에 따라서도 오버로딩을 구현할 수 있다.

this와 this()

- this : 객체 자기 자신 스스로 참조

· 인스턴스가 바로 자기 자신을 참조하는 데 사용하는 변수를 말한다.

· this를 필드에 붙여서 사용하면, 중괄호{ } 안에서도 같은 이름의 매개변수와 필드를 구분해서 사용된다.

this.필드 = 매개변수명;

- this()

· 생성자의 코드가 중복될 경우 this를 사용하여 중복되는 코드를 줄일 수 있다.