▶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 |