[JAVA] this란?
2021. 9. 9. 11:15ㆍWeb/JAVA
728x90
this란?
자기 자신을 의미하며 필드(전역변수)와 메소드, 생성자의 매개변수가 동일할 때
인스턴스 필드임을 명확히 하기 위해 사용됩니다.
this가 하는 일로 크게 세 가지가 있습니다.
1. 자신의 메모리를 가리킵니다.
1
2
3
|
public void setYear(int year) {
this.year = year;
}
|
cs |
여기서 this를 생략하면 year는 파라미터로 사용되는 것으로 인식합니다.
2. 생성자에서 다른 생성자를 호출합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package thisex;
class Person {
String name;
int age;
public Person() {
this("이름없음", 1); // this 앞에 다른 statement가 올 수 없음
}
public Person(String name, int age) { // Person을 만들 때 이름하고 나이를 파라미터로 받음
this.name = name;
this.age = age;
}
}
public class CallAnotherConst {
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1.name); // 이름없음 출력
}
}
|
cs |
3. 자신의 주소를 반환합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
package thisex;
class Person {
String name;
int age;
public Person() {
this("이름없음", 1); // this 앞에 다른 statement가 올 수 없음
}
public Person(String name, int age) { // Person을 만들 때 이름하고 나이를 파라미터로 받음
this.name = name;
this.age = age;
}
public Person returnSelf() { // 자기 자신의 클래스명으로 반환형을 잡아야 함
return this; // 리턴하게 되면 현재 인스턴트 주소값을 나타냄
}
}
public class CallAnotherConst {
public static void main(String[] args) {
Person p1 = new Person();
System.out.println(p1.name); // 이름없음 출력
System.out.println(p1.returnSelf()); // 주소값 출력
}
}
|
cs |
728x90
'Web > JAVA' 카테고리의 다른 글
[JAVA] singleton 패턴 (0) | 2021.09.15 |
---|---|
[JAVA] static 변수 (0) | 2021.09.14 |
[JAVA] 정보은닉(information hiding) (0) | 2021.09.08 |
[JAVA] 객체지향 프로그래밍과 클래스 (0) | 2021.09.08 |
[JAVA] 반복문의 종류 (0) | 2021.09.04 |