TIL | JAVA 생성자 this() / 참조변수 this

김윤희·2022년 8월 1일
0

생성자 this()와 참조변수 this

  • this : 인스턴스 자신을 가리키는 참조변수 인스턴스의 주소가 저장되어 있다
    모든 인스턴스메서드에 지역변수로 숨겨진 채 존재한다
  • this(), this(매개변수) : 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다

✔ ❗ 생성자 this()와 참조변수 this는 전혀 다른 것이기 때문에 관계를 지으면 안된다 😑❗

생성자 this()


  • 생성자에서 다른 생성자 호출할 때 사용
  • 다른 생성자 호출시 반드시 첫 줄에서만 사용가능
class Car{
	String color;
    String gearType;
    int door;

	Car (){
    	//Car (String color, String  gearType, int door)을 호출
        //코드의 중복을 제거하기 위해서
    	this("white","auto",4);	//값을 넘겨주지 않고 생성할때 기본값을 주기 위해
    }	
    
    Car (String color){
    	//Car (String color, String  gearType, int door)을 호출
        //코드의 중복을 제거하기 위해서
    	this(color,"auto",4);	//값을 넘겨주지 않고 생성할때 기본값을 주기 위해
    }
    
    Car (String color, String  gearType, int door){	
    	this.color = color;
        this.gearType = gearType;
        this.door = door;
    }
}
  • 원래 아래와 같이 쓰이게 되면 코드의 중복인데 제거하기 위해서 위와 같이 써준다
car(){
	color = "white";
    geartype = "auto";
    door = 4;
}


참조변수 this


  • 인스턴스 자신을 가리키는 참조변수
  • 인스턴스 메서드(생성자 포함)에서 사용가능
  • 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
car(){
	color = "white";
    geartype = "auto";
    door = 4;
}
  • 원래는 this.color = "white"로 앞에 this가 붙는 것이 맞지만
    같은 클래스 내에서는 생략이 가능하다
    하지만, 아래와 같이 iv와 lv의 이름이 같은 경우 this를 붙여주어야한다
car(String color, String  gearType, int door){
	this.color = "white";
    this.geartype = "auto";
    this.door = 4;
}

0개의 댓글