자바에서 this는 자기 자신을 말한다. ‘this.문돌이라하면 내가 가지고 있는 문돌 필드라는 의미이다. 객체는 자신의 참조를 가지고 있는 키워드로 멤버임을 명확히 하기 위해 this를 사용한다.

 

this.멤버변수, this.멤버메소드, this()와 같이 사용하며 생성자를 호출한다. 기존에 사용했던 방법과 this를 활용한 방법 두 가지로 연습을 해보자.

 

 예제에서 this.kor에서 this를 삭제해도 에러는 발생하지 않는다. 대신 값이 0으로 나오는 걸 알 수 있는데 kor=kor이라 표현되면 단순한 지역변수로 브레이스{ } 안에서만 효력이 있기 때문이다.

 

class ThisEx01 {

int kor, eng, mat;

 

/* 기존 사용법

ThisEx01(int k, int e, int m){

kor=k;

eng=e;

mat=m;

}

*/

 

// this 활용

ThisEx01(int kor, int eng, int mat){

this.kor=kor;

this.eng=eng;

this.mat=mat;

}

 

public static void main(String[] args) {

ThisEx01 obj1 = new ThisEx01(90,100,80);

System.out.println("국어 : " + obj1.kor +"");

System.out.println("영어 : " + obj1.eng +"");

System.out.println("수학 : " + obj1.mat +"");

}

}

 

생성자에 this를 사용해서 확인을 해보자. this(vI01, 20)와 같이 입력하면 매개변수가 두 개인 생성자로 읽고 30이라는 결과를 가져온다.

 

class ThisEx02 {

 

// "매개변수가 하나인 생성자" + vI01

ThisEx02(int vI01){

this(vI01,20); //결과 30

System.out.println("매개변수가 하나인 생성자 " + vI01);

}

 

// "매개변수가 두개인 생성자" + (vI01+vI02)

ThisEx02(int vI01, int vI02){

System.out.println("매개변수가 두개인 생성자 " + (vI01+vI02));

}

 

public static void main(String[] args) {

ThisEx02 obj1 = new ThisEx02(10); //결과 10

ThisEx02 obj2 = new ThisEx02(10,20); //결과 30

}

}

 


+ Recent posts