티스토리 뷰

기억하자정보

자바 this

LANIAN 2007. 3. 19. 12:47

1> this 의 정의

자기 자신 클래스(객체)를 가리킨다.

2> this 의 특징

  • 객체 자신에 대한 참조값을 갖는다.(즉 자신을 가리킨다.)
  • 메소드내에서만 사용된다
  • 객체 자신을 메소드에 전달하거나 리턴해 주기위해 사용하기도 한다.
  • this를 사용하으로서 모호하지 않고 좀더 명확한 프로그램을 작성할 수 있다.
  • 객체 생성자내에서 사용시 다른 생성자를 호출한다. (this의 용법 1)
  • 매개변수와 객체 자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 자신의 변수에 this를 사용한다. (this의 용법 2)
  • (주의) static 메서드(예를 들어 main())에서 쓸 수 없다.
    (why? static 메서드는 객체가 new라는 키워드로 생성되기 이전에 메모리에 로딩이되므로 아직 객체가 생기지 않았는데 this를 사용하면 안됨..당근,,,)

3> this 사용형식

형식
의미
this
자신 객체를 가리킨다.
파라미터 값으로 자신의 객체를 넘겨줄때에도 this를 이용.
this.멤버변수
매개변수와 객체 자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 자신의 변수에 this를 사용한다. (this의 용법 2)
this(매개변수);
생성자내에서 다른 생성자를 호출한다.(this의 용법 1)

4> this 예제

㉠ This_1.java(this의 용법 1)


1 : class This_1
2 : {
3 :     int i;
4 :     double d;

// This_1()생성자 메서드내에서 자기 자신의 또다른 생성자를
// this()를 이용해서 호출한다.

5 :    public This_1(int i){
6 :      this(3.14); // 10라인의 생성자를 호출
7 :      System.out.println(i);
8 :    }
9 :
10 :    public This_1(double d){
11 :      System.out.println(d);
12 :    }
13 :
14 :    public static void main(String[] args)
15 :    {
16 :      This_1 t=new This_1(100);
17 :    }
18 : }


<< 실행 결과 >>

3.14
100


㉡ This_2.java (this의 용법 2)


1 : class This_2
2 : {
3 :     int i;
4 :     double d;

//멤버변수인 int형 i와 파라미터인 int형 i가 변수명이 같다.
// 따라서 이를 구분하기위해 멤버변수인 i 앞에 this를 붙임으로서 구별을한다.

5 :    public void Method1(int i){
6 :      this.i=i;
7 :    }
8 :

//멤버변수인 double형 d와 파라미터인 double형 d가 변수명이 같다.
// 따라서 이를 구분하기위해 멤버변수인 d 앞에 this를 붙임으로서 구별을한다.

9 :    public void Method1(double d){
10 :      this.d=d;
12 :   }

13 :    public static void main(String[] args)
14 :    {
15 :      This_2 t=new This_2();
16 :      t.Method1(100);
17 :      t.Method1(3.14);
18 :      System.out.println(t.i);
19 :      System.out.println(t.d);
20 :    }
21 : }


<< 실행 결과 >>

100
3.14


댓글
안내
궁금한 점을 댓글로 남겨주시면 답변해 드립니다.