😀 생성자 this()

 

- 생성자에서 다른 생성자를 호출할 때 사용

- 다른 생성자 호출 시 첫 줄에서만 사용가능

 

✔예제)

↳ 첫 줄에서만 생성 가능 아니면 에러가  남

  Car(color, "auto",4) -> this(color,"auto",4) 바꿔줘야 함

 

 ✔예시) 코드 중복 제거 

 

😀 참조변수 this

 

- 인스턴스 자신을 가리키는 참조변수

- 인스턴스 메서드(생성자 포함)에서 사용가능

- 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용

- 참조변수 this,  생성자 this() 는 ()로 구분

 

 ①                                              ②

↳ ② this가 있어야 iv로 간주

 ① 같은 클래스 안에서는 this 생략가능

↳ ② iv와 lv의 변수 이름이 같아서 this 생략 불가능

 

this : 참조변수 , this() : 클래스 이름  대신 사용

 

✔예시)

clas MyMath2{
	 long a, b; // this.a this.b => 진짜이름(this 생략가능)
     
     MyMath2(int a, int b) {// 생성자
     	this.a = a;
        this.b = b;  // lv와 iv를 구별하려고 this 사용, 
       				 //this는 생성자와 인스턴스 메서드에만 사용 가능
	}
    long add() {
		return a + b; // return this.a + this.b;
	}
    static long add(long a, long b){ // 클래스 메서드(static메서드),
    								 // this 사용불가 : this의 의미가 객체자신을 의미하기 때문
    	return a + b;
	}

+ Recent posts