///////
Search

this

날짜
2022/09/23
URL

this문은 사용 방법이 크게 두가지 이다.

(1) 참조변수 This

현재 객체 자신을 가리키는 참조변수
this는 컴파일러에서 자동으로 생성한다. ( 따로 this 객체 만들 필요 없음)
주로 생성자에서 매개변수 이름과 필드 이름이 동일한 경우에 혼동을 막기 위해서 사용한다
class Song { String title, artist, country; int year; public Song(String title, String artist, int year, String country) { this.title = title; // song()의 매개변수로 들어 오는 값을 this.artist = artist; // Song 클래스의 변수(인수)로 받아 들인다는 코드 this.year = year; this.country = country; }
Java
복사

(2) 생성자 함수 this()

주의점: this() 사용시에는 생성자 호출 코드 안에서 맨 첫줄에 써줘야 한다.
함수사용이유: 코드 중복제거 위해 같은 작업을 하는 코드를 부른다. (밑 코드 참고)
Class Car { String color; String gearType; int door; Car(String c, String g, int d) { color = c; // 참조형 this를 써서 구분할 수 있지만, 변수명을 달리 사용하였으므로 gearType = g; // 따로 this를 넣어주지 않았다. door =d; } // 1. this함수를 활용하여 중복없이 간단한 코드를 만들었다. Car() { this("White","auto",4); } // 2. this 함수를 사용하지 않아 중복되는 코드가 많고 난잡하다. Car() { color = "white"; gaerType = "auto"; door = 4; } // 3. 기본적으로 this()는 괄호안에 매개변수의 수가 일치되는 생성자를 따라가 불러온다. Car() { this(); } // 만약 위 코드처럼 매개변수 없이 호출하면 Car의 디폴트 생성자가 호출된다. }
Java
복사

(3) 참조변수 this와 this()의 차이점

this는 참조변수, this() 생성자함수다. 따라서 this에는 인스턴스의 주소가 저장되어 있고, this()은 생성자를 호출할 때 사용하는 명령어이다.