Java 8, this
Java, 주요 문법.
문법 : this.
옛날에도, 다시 공부를 시작한 지금도 이게 뭘까 생각이 드는 문법 중 첫번 째,
this
에 대해 정리해보려합니다.
this란?
먼저 언제나 그래왔듯, this
의 사전적 의미먼저 살펴보면, 단순하게 “이것”이라고 하네요.
뭐, 단순하게 생각하면 어릴 때 잠깐 배운 영어에서도 ‘this’는 항상 “무언가를 가리킬 때” 썼던 것 같습니다.
Java
에서도 비슷하긴 합니다.
다만 가리키는 것이 “이것”이 아닌 자기 자신일 뿐입니다.
이전 포스팅에서 배웠던 객체와 클래스, 그리고 인스턴스에서 자주 사용되는 this
는 자기 자신을 의미합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Car {
private int modelNo;
private String modelName;
public int modelNo;
public String modelName;
public void modelNo(int modelNo) {
this.modelNo = modelNo;
}
public void modelName(String modelName) {
this.modelName = modelName;
}
}
이 블로그에서 제일 자주 등장하는 Car
클래스.
오늘도 등장했습니다.
내용을 보시면 this.modelNo = modelNo;
라는 부분이 있습니다.
여기가 오늘 this
의 핵심이라 할 수 있습니다.
1
2
3
public void setModelNo(int modelNo) {
this.modelNo = modelNo;
}
modelNo
은 차량 모델의 고유번호 정도라 생각하고 보시면,
public void setModelNo
는 modelNo
의 데이터를 설정하는 메소드입니다.
보시면 this.modelNo = modelNo
부분이 있습니다.
여기서 this
는 setModelNo
의 매게변수 modelNo
에 할당된 메모리를 그대로 사용한단 뜻입니다.
말이 조금 어렵게 느껴질 수도 있겠네요.
쉽게 풀어서 설명해보겠습니다.
1
2
3
public void setModelNo(int modelNo) {
this.modelNo = modelNo;
}
이 부분을 보시면 setModelNo
함수는 매게변수 modelNo
를 선언했습니다.
그리고 this.modelNo = modelNo
라고 작성되었습니다.
여기서 this
는 setModelNo
가 선언한 modelNo
를 뜻합니다.
“저것”이 아니라 “자기 자신”을 뜻하는 거죠.
굳이 이렇게 작성하는 이유는 가독성때문입니다.
setModelNo
와 매게변수 modelNo
가 서로 다른 이름일 경우
굳이 this
를 사용하지 않아도 되지만, setModelNo
는
이름 그대로 modelNo
를 설정하는 함수입니다.
1
2
3
public void setModelNo(int number) {
numebr = number;
}
이런 식으로 작성되도 문제는 발생하지 않지만,
코드의 가독성이 현저히 떨어지기에 modelNo
와 함수의 이름을
맞추서 사용하는 겁니다.
오늘은 this
의 가장 흔한 사용법에 대해 알아보았고,
다음 포스팅엔 this()
를 정리해보겠습니다.