프로그래밍 언어/Java

java 4강 this 란 무엇인가요?

happy_life 2021. 10. 29. 14:37

예제 코드

 

class C{
	int v = 10;
	
	void m() {
		int v = 20;
		System.out.println(v);
		System.out.println(this.v);
	}
}

public class HelloWorldApp {

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

}

 

예상되는 출력값은 무엇일까요? 

 

출력 코드

 

이렇듯 위에 있는 부분은 지역변수

아래 부분은 전역변수를 의미하는 것을 알 수 있습니다.

this 가 있다는 것은 인스턴스를 생성했을 때

그 인스턴스 자신을  의미하는 것입니다.
즉, this 가 붙게 되면 그 객체에 대한 전역의 의미를 갖게 되는 것입니다.

 

활용예제코드

 

class Calculator{
	static double PI = 3.14;
	int left, right;
	
	public void setOprands(int left,int right) {
		this.left = left;
		this.right = right;
	}
	
	public void sum() {
		System.out.println(this.left + this.right);
	}

public class HelloWorldApp {

	public static void main(String[] args) {
		
		Calculator c1 = new Calculator();
		
		c1.setOprands(20, 10);
		c1.sum();
	}
}

여기서 빨간색은 setOprands 메소드의 지역변수입니다.

즉 (  ) 부분에 있는 int left, int right 는 지역 변수를 선언해주는 것과 동시에, 인자를 받겠다는 것을 의미합니다.

 

받은 인자들이 this.left 에 들어가고, 

이는 class 전체의 전역변수의 값으로 설정됩니다.