Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package practice2;
  2.  
  3. class Test {
  4.     int num1;
  5.     int num2;
  6.    
  7.     public void setNums(int num1, int num2) {
  8.         //맴버변수와 지역변수가 이름이 같아 둘을 구분해주기 위해 맴버변수 앞에는 this를 붙임
  9.         this.num1 = num1;
  10.         this.num2 = num2;
  11.     }
  12.    
  13.     Test(int num1, int num2) {
  14.         //생성자에서도 위와 마찬가지로 맴버변수와 지역변수의 이름이 같아 this를 붙여 구분지어줌.
  15.         this.num1 = num1;
  16.         this.num2 = num2;
  17.     }
  18.    
  19.     Test() {
  20.         //생성자가 오버로딩 되었을때 다른 생성자를 호출하기 위해 this()사용
  21.         this(10, 20);
  22.     }
  23. }
  24.  
  25. public class ThisTest1 {
  26.    
  27.     public static void main(String[] args) {
  28.         Test t = new Test(); //기본 생성자를 호출
  29.         //기본생성자 호출시 기본생성자에서 다시 인자값 두개를 가지는 생성자를 호출하여 10, 20을 전달해
  30.         //주기 때문에 결과는 "num1=10, num2=20" 과 같이 출력되게 됨.
  31.         System.out.println("num1=" + t.num1 + ", num2=" + t.num2);
  32.        
  33.         /*전달받은 인자값의 변수명이 맴버변수명과 같아도 this를*
  34.          *이용하면 맴버변수의 값을 변경할 수 잇는것을 알 수 있음   */
  35.         Test t2 = new Test(100, 200); //인자값 두개를 가지는 생성자 호출
  36.         System.out.println("num1=" + t2.num1 + ", num2=" + t2.num2);
  37.        
  38.         t2.setNums(1, 2); // 메서드를 이용해 맴버변수 값 바꾸기
  39.         System.out.println("num1=" + t2.num1 + ", num2=" + t2.num2);
  40.     }
  41.  
  42. }