예제 코드
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 전체의 전역변수의 값으로 설정됩니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
java 5강 생성자란? (0) | 2021.11.03 |
---|---|
[Android java] addTextChangedListener onText/afterText 차이 (0) | 2021.11.02 |
Android TextInputEditText hint color 변경하는 방법 (0) | 2021.10.28 |
java.lang.NumberFormatException: empty String 에러 해결 (0) | 2021.10.26 |
class is public, should be declared in a file named .java 에러 해결 (0) | 2021.10.25 |