[Java 개발] 제6회 컨스트럭터 (생성자)

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의254cm입니다.

이번에는 컨스트랙터에 대해서 알아보도록 하겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는 [Java 개발] 제5회 클래스 에 대해서 배워봤습니다.

 

컨스트럭터 (생성자)

・컨스트럭터란?

컨스트럭터는 클래스의 인스턴스를 생성하기 위해 사용하는 메서드입니다.

컨스트럭터는「new」키워드를 사용해 호출합니다.

 

컨스트럭터 호출법

 

컨스트럭터 쓰는 법

 

메서드를 쓰는 방식이 비슷하지만 컨스트럭터는 반환값이 존재하지 않습니다.

샘플을 보면서 설명해드릴게요.

・샘플

 

위와 같이 작성하면 Cat 클래스의 인스턴스를 생성하자마자 mugi의 age와 color에 값이 설정됩니다.

컨스트럭터는 인스턴스를 생성할 때마다 호출되며,

인스턴스 작성 시 수행할 처리를 지정할 수 있습니다.

즉, 작성자가 의도한 대로 인스턴스를 생성할 수 있습니다.

 

 

※디폴트 생성자(default constructor)

java 컴파일러는 컨스트럭터를 만들지 않은 클래스에 대하여,

디폴트 컨스트럭터를 추가시킵니다.

디폴트 컨스트럭터는 실제 소스 코드에서는 보이지 않지만,

이하와 같은 것이 추가됩니다.

 

위와 같은 빈 컨스트럭터가 추가되며,

컨스트럭터를 생성하지 않고도 클래스의 인스턴스를 생성할 수 있습니다.

기본 컨스트럭터는 인스턴스 생성 이외의 동작은 하지 않습니다.

・샘플

 

위와 같은 컨스트럭터가 생성되지 않았어도 인스턴스 생성을 할 수 있습니다.

 

기본 컨스트럭터는 일반 컨스트럭터가 생성되어 있을 경우에는 사용할 수 없습니다.

클래스 생성자가 인스턴스 생성 시 의도한 처리를 실행시키고 싶어서 컨스트럭터를

작성합니다만, 디폴트 컨스트럭터를 사용하고자 의도한 처리를

실행시킬 수 없으니까요.

this

・this란?

this는 인스턴스가 자신을 참조하기 위해 사용되는 변수입니다.

this는 인스턴스의 주소를 나타내고 있습니다.

・샘플

 

위의 샘플을 보면

this 변수를 이용하여 자신(Dog)의 age, name, species에 접속하여

파라미터의 age, name, species를 대입하였습니다.

위의 샘플과 같이 컨스트럭터의 파라미터와 클래스 필드 이름이 중복된 경우

this 변수를 이용하여 구분할 수 있습니다.

this 변수는 나중에 공부하는 static 메서드에서는 사용할 수 없습니다.

static 메서드 이외의 메서드는 안에서 this 변수가 숨겨져 있어

this 변수를 사용할 수 있습니다.

 

끝으로

이번 기사는 이상입니다.

다음 시간에는 자바클래스 계승을 배워보겠습니다.

방문해 주셔서 감사합니다.

 

コメント