CODEDRAGON ㆍDevelopment/Java
this와 this()
this
· 객체 내부에서 객체 자신을 지칭하고 싶을 때 사용합니다.
· 지역변수와 멤버변수를 구별해야 할 때 사용합니다.
· 객체 자신을 가리킬 수 있는 유일한 reference가 바로 this입니다.
this()
· 생성자 내부에서만 사용할 수 있으며, 같은 클래스의 다른 생성자를 호출할 때 사용합니다. 즉, 현재 객체의 생성자를 의미합니다.
· (주의) 생성자의 첫 행에 정의해야 합니다. 그렇지 않으면 컴파일시 오류가 발생합니다.
· this()를 이용하여 한 클래스내의 특정 생성자에서 Overloading되어 있는 다른 생성자를 호출할 수 있게 합니다. 이렇게 함으로써 생성자에서 코딩 내용이 중복되는 부분을 막을 수 있습니다.
· 매개변수가 있는 경우 생성자는 입력받은 매개변수에 따라 이들 필드를 초기화합니다.
키워드this를 이용한 다른 생성자의 호출
· 키워드this를 이용하면 생성자내에서 다른 생성자를 호출할 수 있습니다.
· 이는 생성자의 추가정의에 대한 편의를 제공합니다.
· 생성자마다 중복되는 초기화 과정의 중복을 피할 수 있습니다.
this의 용법
형식 |
의미 |
this |
· 객체 자신 · 파라미터 값으로 객체 자신의 참조값을 넘겨줄때에도 this 사용 |
this.멤버변수; |
· 매개변수와 객체 자신이 가지고 있는 변수(멤버변수)의 이름이 같은 경우 이를 구분하기 위해 자신의 멤버변수에 this를 사용 |
this(매개변수); |
· 생성자내에서 다른 생성자를 호출 · this() 메소드에 매개변수를 전달하면, 생성자 중에서 메소드 시그니처가 일치하는 다른 생성자를 찾아 호출해 줍니다. |
객체외부 vs 객체내부에서의 멤버접근
객체외부 |
객체의 이름 사용 |
pp1.name ="홍길동"; |
객체내부 |
this키워드 사용 |
this.name ="홍길동"; |
'Development > Java' 카테고리의 다른 글
컬렉션 클래스 총정리 (0) | 2017.09.23 |
---|---|
static - static 예약어, static 정의 형식 (0) | 2017.09.22 |
Varargs(VARiable ARGumentS; 가변인자) (0) | 2017.09.22 |
캡슐화(Encapsulation) 특징 (0) | 2017.09.22 |
패키지(package), 클래스 디자인시 문제 발견, 해결방법 (0) | 2017.09.21 |