Java 생성자 this()

nathan·2021년 12월 30일
0

JAVA

목록 보기
13/45

생성자 this()

  • 같은 클래스 내 생성자에서 다른 생성자를 호출할 때 사용
  • 다른 생성자 호출시 첫 줄에서만 사용 가능
  • 코드의 중복을 피할 수 있다!
public class EX6_13 {
    public static void main(String[] args) {
        Car2 c1 = new Car2();
        Car2 c2 = new Car2("Blue");
        Car2 c3 = new Car2("Red", "auto", 7);
    }
}

class Car2{
    String color;
    String gearType;
    int door;
    
    Car2(){
        this("white", "auto", 4);
    }
    
    Car2(String color){
        this(color, "auto", 4);
    }
    
    Car2(String color, String gearType, int door){
        this.color = color;
        this.gearType = gearType;
        this.door = door;
    }
}

참조변수 this

  • 인스턴스 자신을 가리키는 참조변수
  • 인스턴스의 주소가 저장되어 있음
  • 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재
  • this() : 생성자와 전혀 다름(별도로 생각하기)
  • 인스턴스 메서드(생성자 포함)에서 사용가능
  • 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용
class MyMath2{
    long a, b; // this.a, this.b

    MyMath2(int a, int b){ // 생성자 (lv, iv 구분을 위해 this 사용)
        this.a = a;
        this.b = b;
    }

    long add(){ // 인스턴스 메서드
        return a+b; // return this.a + this.b; (사실상 this 생략)
    }

    static long add(long a, long b){ // 클래스 메서드(static 메서드)
    // 인스턴스 변수 사용불가 -> 따라서 this도 사용불가 (객체가 존재하지 않을 수도 있기 때문)
        return a+b;
    }

}
profile
나는 날마다 모든 면에서 점점 더 나아지고 있다.

0개의 댓글