▶this

✔this란?

- 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재한다

- this.는 인스턴스 자기 자신을 의미한다. this.은 주로 필드(전역변수)와 메소드 또는 생성자의 매개변수가 동일할 때 인스턴스 필드임을 명확히 하기 위해 사용한다

- 함수 실행 시 전달되는 객체의 주소를 자동으로 받는다

간단하게 생각하면 this는 인스터스의 주소값을 담고있다고 받아들이면 된다

 

✔this 사용예시

public class Academy {

	private String name;

	public Academy ( ) { 
	}

	public Academy (String name1) {
	this.name = name1;
	}
}

* 위와 같이 매개변수를 가지는 생성자에서 매개변수 명이 필드명과 같은 경우

매개변수의 변수명이 우선이므로 this 객체를 이용하여 대입되는 변수가 필드라는 것을 구분해줌

 

✔this( )란?

- 자기 자신의 다른 생성자를 호출할 때 사용하는 키워드이다. 

- 생성자 내부의 코드 블록 첫줄에 this()를 호출함으로 자신의 다른 생성자를 호출 할 수 있다.

- 생성자가 다양해질 때(오버로딩) this()를 이용하면 중복된 코드를 간단하게 작성할 수 있다.

- 같은 클래스의 다른 생성자를 호출할 때 사용, 반드시 첫 번째 줄에 선언해야 한다

- 주의할 점은 생성자 코드블록 내부의 this() 위에 다른 소스코드가 존재해서는 안된다.

 

✔this( ) 사용 예시

public class ThisConstructor {
	private String bookName;
	private int bookPrice;
	private String bookPublisher;
	private int bookId;
	
	public ThisConstructor() {
		System.out.println("기본생성자입니다.");
	}
	public ThisConstructor(String bookPublisher) {
		this.bookPublisher=bookPublisher;
		System.out.println("매개변수 하나");
	}
	public ThisConstructor(String bookName,int bookPrice,int bookId) {
		this("주크박스");
		this.bookName=bookName;
		this.bookPrice=bookPrice;
		this.bookId=bookId;
	}
	// getter
	public String getBookName() {
		return bookName;
	}
	public int getBookPrice() {
		return bookPrice;
	}
	public String getBookPublisher() {
		return bookPublisher;
	}
	public int getBookId() {
		return bookId;
	}
}
import oop1.hy3.co.ThisConstructor;

public class Run {

	public static void main(String[] args) {
		
		ThisConstructor TC = new ThisConstructor("디저트 월드",7000,1301);
		System.out.println("책이름:"+TC.getBookName()+" 가격:"+TC.getBookPrice()+
		" 출판사:"+TC.getBookPublisher()+" 아이디:"+TC.getBookId());
	}
}

 

'Language > Java' 카테고리의 다른 글

조건문 if / 선택문 switch  (0) 2022.01.25
Scanner 클래스 / print메소드  (0) 2022.01.24
Overloding(다향성) / Overriding(상속성)  (0) 2022.01.07
객체 배열  (0) 2022.01.04
Class - 메소드 (Method)  (0) 2022.01.04