본문 바로가기
Java의 정석 기초편(남궁성) 정리 + a/6 ~ 7. 객체지향 프로그래밍 1, 2

객체지향 프로그래밍1 32 ~ 37. 생성자 , 기본 생성자 , 매개변수가 있는 생성자 , this() , this

by doriver 2022. 9. 24.

생성자 ( constructor )

인스턴스가 생성될때 호출되는 '인스턴스 초기화 메서드'이다. 
인스턴스변수의 초기화 작업에 주로 사용되며, 인스턴스 생성시 실행되어야하는 작업을 위해서도 사용된다
메서드와 구조가 비슷하지만 리턴값이 없다. 생성자의 이름은 클래스의 이름과 같아야 한다.
생성자도 오버로딩이 가능하여, 하나의 클래스에 여러개의 생성자가 존재할수 있다.

클래스이름 (매개변수) {
	// 인스턴스 생성시 수행될 코드
	// 주로 인스턴스 변수의 초기화 코드를 적는다
}

 


모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야한다
소스파일( *.java )의 클래스에 생성자가 하나도 정의되지 않은 경우 컴파일러가 자동으로 아래와 같은 기본생성자를 추가하여 컴파일 한다

기본 생성자 ( default constructor)

클래스이름() { } // 기본 생성자
Point() { } // Point클래스의 기본 생성자

클래스에 정의된 생성자가 하나도 없을때만 , 컴파일러가 기본생성자를 추가한다.

 

 

인스턴스마다 각기 다른값으로 초기화되어야 하는 경우가 많다

 

클래스를 작성할때 다양한 생성자를 제공, 클래스의 어떤 생성자로 인스턴스를 생성할것인가? 의 문제

생성자를 잘 활용하면 보다 간결하고 직관적인, 객체지향적인 코드를 작성할수 있을것이다.

 

생성자에서 다른 생성자 호출하기 , this();

클래스 이름대신 this를 사용

첫줄에서만 호출이 가능하다

 

this

인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다

생성자를 포함한 모든 인스턴스메서드에 자신이 관련된 인스턴스를 가리키는 참조변수 this가 지역변수로 숨겨진채로 존재

'this'를 사용할수 있는 것은 인스턴스 멤버뿐이다. static메서드에서는 'this'를 사용할수 없다

 

this() , this(매개변수)

생성자, 같은 클래스의 다른 생성자를 호출할때 사용한다.