JAVA

생성자_this()

고민말고생각하는사람 2024. 1. 15. 23:52

this()?

 

이전 내용을 학습하면서 this.멤버변수 등을 통해 this 가 해당 클래스의 인스턴스를 지칭하는 것을 알았다.

this 키워드를 통해 코드가 작성된 클래스 객체에 접근하고 변수 초기화, 메서드 등을 실행 시켰었는데...

 

this() 는 뭘까??

this()는 해당 클래스의 생성자를 호출하는 메서드 이다.

 

?? 말만 들으면 잘 모르겠다.

 

예시를 통해 알아보자.

 

public class WhatIsThisMethod(){
	String title;
    String content;
    String description;
    
    WhatIsThisMethod();	// 기본 생성자
    
	// 생성자 오버로딩    
    WhatIsThisMethod(String title, String content, String description){
    	this.title = title;
        this.content = content;
        this.description = description;
    }
    
    WhatIsThisMethod(String, title, String content){
    	this(title, content, "캐릭터 사업");
    }
       
}

2번째로 오버로딩한 생성자 메서드에서 this() 를 통해 첫 번째 오버로딩 생성자를 사용할 수 있게 됐다.

 

생성자(매개변수...매개변수){

this(생성자-매개변수, 매개변수...매개변수)}

 

형태가 되므로, 매개변수를 어떻게 늘리든 기존 코드를 재사용할 수 있다.

WhatIsThisMethod exam1 = new WhatIsThisMethod("조종", "링귀니 조종하기", "캐릭터 사업");
WhatIsThisMethod exam2 = new WhatIsThisMethod("수확", "모코코 캐기");

 

규칙

1. 생성자 안에서만 사용 가능하다.

2. 생성자 코드 블럭의 첫 번째 행에서만 작성 가능하다.