본문 바로가기
Java

this 키워드 모두 정리!! (변수,생성자,파라메터,클래스)

by Ms.Pudding 2022. 1. 15.

1.현재 객체의 인스턴스 변수를 가르킨다.

 

class Test{

	int a;
    int b;
    
	//파라메터값 넣은 생성자
    Test(int a, int b)
    {
    	this.a = a;
        this.b = b;
    }
    
    void display()
    {		//a랑 b의 값을 보여준다. 
    		System.out.println("a = "+a+" b=" + b);
    }

	public static void main(String[] args)
    {
    	Test object = new Test(10,20);
        	object.display();
    }


}

output a = 10 b = 20

 

2.this()는 현재 담겨있는 파라메터 값을 토대로 생성자를 부른다.

 

class Test{

	int a;
    int b;
    //디폴트 생성자
    Test()
    {
    		this(10,20);
            System.out.println("디폴트 생성자 안이다!\n");
    }
	
    //파라메터가 있는 생성자
    Test(int a,int b)
    {
    	this.a =a;
        this.b =b;
        System.out.println("파라메터값이 있는 생성자!");
    }
    
    public static void main(String[] args)
    {
    	Test object = new Test();
    }

}

 

output

파라메터값이 있는 생성자

디폴트 생성자 안이다!

 

3.메소드의 return this는 현재 클래스의 인스턴스 변수를 반환해준다.

class Test{
	
    int a;
    int b;
    
    //디폴트 생성자
    Test(){
    	a = 10;
        b = 20;
    }

	//현재 클라스의 인스턴스를 불러오는 메소드
    Test get(){
    	return this;
    }
    
    //a와 b변수를 보여준다
    void display()
    {
    	System.out.println("a= " + a + " b= " +b);
    }
    
    public static void main(String[] args{
    	Test object = new Test();
        object.get().display();
    }

}
a = 10  b = 20

 

4. this를 메소드의 파라메터 값으로 쓴 경우

 

class Test{
	
    int a;
    int b;
    
    //디폴트 생성자
    Test(){
    	a = 10;
        b = 20;
    }

	//this 키워드를 파라메터 값으로 받는 메소드
    void display(Test obj){
    	System.out.println("a = " +obj.a + " b=" + obj.b);
    }
    
    //현재 클래스의 인스턴스를 받는 메소드
    //필드의 인스턴스 변수인 a,b를 받음 
    void get(){
    	display(this);
    }
    
    public static void main(String[] args){
    	Test object = new Test();
        object.get()
    }
}
a = 10  b = 20

 

5.현재 클래스의  메소드를 부를 때 사용하는 this

 

class Test{

	void display(){
    		//show() 메소드를 부른다.
            this.show();
            
            System.out.println("display메소드 안이다!");
    }
    
    void show(){
    	System.out.println("show 메소드 안이다!");
    }
    
    public static void main(String[] args){
    	Test t1 = new Test();
        t1.display();
    
    }
    



}

show 메소드 안이다!

display메소드 안이다!

 

6.생성자 호출에서 인자(함수 호출 시 전달되는 값)값으로 쓸 떄 사용하는 this

class A{

	B obj;
    	//객체 B의 값을 파라메터 값으로 받는 생성자
    A(B obj){
    		this.obj = obj;
            
            //객체 B의 display()메소드를 부름
            obj.display();
    }

}

class B{

	int x = 5;
    
    //B의 디폴트 생성자이며 , a객체를 생성해준다.
    //생성자 안에 B의 인자값을 넣어준다.  
    B(){
    	A obj = new A(this);
    }
   
   void display(){
   		System.out.println("b클래스의 x값은 : " + x);
        
   }
   
   public static void main(String[] args){
   			B obj = new B();
   }

}

b클래스의 x값은 5

 

 

주로 인스턴스 관련하여 많이 쓰는 듯 하다.

 

출처: https://www.geeksforgeeks.org/this-reference-in-java/

 

 

댓글