Back-End/Java

[Java] this 키워드

nanee_ 2021. 8. 27. 13:45
728x90
반응형
SMALL

this

1. 인스턴스(객체) 자기 자신의 메모리를 가리킨다.

2. 생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다.

3. 자신의 주소(참조값, 주소값)을 반환시킬 수 있다.

 

 

1. 인스턴스(객체) 자기 자신의 메모리를 가리킨다.

 

public class Engine{
	
    String name;
    int price;
    
    // 생성자
    public Engine(String name, int price){
    	this.name = name;
        this.price = price;
    }
}

 

Engine 클래스에 멤버변수로 name과 price를 선언했다.

 

Engine의 생성자를 만들어 줄 때,

매개변수를 받아 멤버변수의  값으로 초기화하려고 하는데

변수명이 같아서 혼동이 올 수 있다.

 

 이 때 this를 사용해 멤버변수임을 표시해줄 수 있다.

this에 점연산자(.)를 붙여주면 Engine 자기자신의 멤버변수에 접근이 가능하다.

this.멤버변수

 

 

2. 생성자에서 또 다른 생성자를 호출할 때 사용할 수 있다.

 

public class Engine{
	
    String name;
    int price;
    
    
    // 생성자 1
    public Engine(String name, int price){
    	this.name = name;
        this.price = price;
    }
    
    // 생성자 2
    public Engine(){
    	this("GDI", 5_000_000);
    }
}

 

this. 은 자기 자신의 메모리에 접근한다는 것을 위해서 확인했다.

 

더 나아가 생성자를 호출할 수도 있다.

만들어 놓은 생성자1을 생성자2에서 this를 사용해 생성자1 형식대로 값을 초기화할 수 있다.

 

 

3. 자신의 주소(참조값, 주소값)을 반환시킬 수 있다.

 

public class Engine{
	
    String name;
    int price;
    
    public Engine(String name, int price){
    	this.name = name;
        this.price = price;
    }
    
    public Engine(){
    	this("이름 없음", 1);
    }
    
    public Engine getEngine(){
    	return this;
    }
    
    public static void main(String[] args){
    	Engine e1 = new Engine();
        e1.name = "GDI";
        e1.price = 5_000_000;
        
        Engine e2 = e1.getPerson();
        
        System.out.println(e1);
        System.out.println(e2);
    }
}

 

 

 

 

 

728x90
반응형
LIST