package practice2;
class Test {
int num1;
int num2;
public void setNums(int num1, int num2) {
//맴버변수와 지역변수가 이름이 같아 둘을 구분해주기 위해 맴버변수 앞에는 this를 붙임
this.num1 = num1;
this.num2 = num2;
}
Test(int num1, int num2) {
//생성자에서도 위와 마찬가지로 맴버변수와 지역변수의 이름이 같아 this를 붙여 구분지어줌.
this.num1 = num1;
this.num2 = num2;
}
Test() {
//생성자가 오버로딩 되었을때 다른 생성자를 호출하기 위해 this()사용
this(10, 20);
}
}
public class ThisTest1 {
public static void main(String[] args) {
Test t = new Test(); //기본 생성자를 호출
//기본생성자 호출시 기본생성자에서 다시 인자값 두개를 가지는 생성자를 호출하여 10, 20을 전달해
//주기 때문에 결과는 "num1=10, num2=20" 과 같이 출력되게 됨.
System.out.println("num1=" + t.num1 + ", num2=" + t.num2);
/*전달받은 인자값의 변수명이 맴버변수명과 같아도 this를*
*이용하면 맴버변수의 값을 변경할 수 잇는것을 알 수 있음 */
Test t2 = new Test(100, 200); //인자값 두개를 가지는 생성자 호출
System.out.println("num1=" + t2.num1 + ", num2=" + t2.num2);
t2.setNums(1, 2); // 메서드를 이용해 맴버변수 값 바꾸기
System.out.println("num1=" + t2.num1 + ", num2=" + t2.num2);
}
}