간단

this 란? 본문

Java(객체지향)/this

this 란?

I want to Sleep 2023. 6. 26. 16:48
728x90

- 기본 개념으로 인스턴스 자기 자신을 가르키는 것 

 

public class C1 {
    int v = 10; //전역변수

    void m(){
        int v = 20;
        System.out.println(v); // 유효범위중 지역 변수가 전역 변수보다 우선순위 이기 때문에 20이 호출
       
    }

    public static void main(String[] args) {
        C1 c = new C1();
        c.m();
    }
}

 

 

  위 코드는 전역변수와 m()라는 메소드안에 지역변수가 선언되어 있다. 우선순위로 인해 실행결과는 20이 출력되는 상황

  하지만 20의 값도 넣고 싶고 10의 값도 넣고 싶을때는 어떻게 해야 할까?

    this 를 사용

public class C1 {
    int v = 10; //전역변수

    void m(){
        int v = 20;
        System.out.println(v); // 유효범위중 지역 변수가 전역 변수보다 우선순위 이기 때문에 20이 호출
        System.out.println(this.v);// this 를 사용하면 전역에 대한 의미를 갖게된다
    }

    public static void main(String[] args) {
        C1 c = new C1();
        c.m();
    }
}

20과 10이 출력이 된다  this.v는  전역변수의 int v = 10; 의 전역변수의의미를 가지게 되는 것

 

※즉, 변수의 이름이 같을 때 , 전역변수와 지역변수를 구분하기 위해(this가 붙어 있는 것은 전역변수) 사용