생성자 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;
MyMath2(int a, int b){
this.a = a;
this.b = b;
}
long add(){
return a+b;
}
static long add(long a, long b){
return a+b;
}
}