[JAVA] this란?

2021. 9. 9. 11:15Web/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

'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