JAVA_25_this

11381 단어 JavaJava

생성자 this();

  • 같은 클래스 내에 있는 생성자들끼리 다른 생성자를 호출할 때
  • 생성자명(=클래스명) 대신 this 쓴다.
  • 호출할 때 첫 줄에서만 쓴다.
  • 목적 : 코드 중복 제거
  • 역할 : iv 초기화 (=생성자 역할)
Car() {
    this("white", "manual", 4);
}

참조변수 this

  • ✨✨인스턴스 메소드와 생성자 에서 객체 자신을 가리키는 참조변수
  • 참조변수니까 인스턴스 주소가 저장
  • 따로 선언X
  • lv와 ✨iv 구별할 때 사용 (이름 같을 때 쓰면 좋다.)
  • this.iv명
  • ✨✨✨✨static메소드 사용 불가
Car(String c, String g, int d) {
    color = c;	// this.color
    geartype = g;	// this.geartype
    door = d;	// this.door 가 원래
}

<- 이 상태는 참조변수this.가 생략된 상태!
<- 같은 클래스면 생략가능인데 이름도 다르니 더더욱 생략 가능

Car(String color, String geartype, int door) {
    this.color = color;
    this.geartype = geartype;
    this.door = door;
}

class Car2 {
	String color;	// iv <- 원래 this.color ...
	String geartype;
	int door;
	
	Car2(){
		this("yellow", "auto", 2);	// 디폴트값
	}
	
	Car2(String color, int door){
		this(color, "semi", door);		// 마찬가지. 단 매개변수로 따로 받고
	}
	
	Car2(String color, String geartype, int door) {
		this.color = color;		// 참조변수 this
		this.geartype = geartype;	
		this.door = door;		
	}
}


public class Ex6_14 {

	public static void main(String[] args) {
		// ex6_12 this 버전
		
		// 생성자 this();활용
		Car2 c1 = new Car2();
		System.out.println("c1의 color : "+c1.color+", geartype : "+c1.geartype+", door : "+c1.door);
		
		Car2 c2 = new Car2("grey", 6);
		System.out.println("c2의 color : "+c2.color+", geartype : "+c2.geartype+", door : "+c2.door);
		
		// 참조변수this 활용
		Car2 c3 = new Car2("blue", "manual", 4);
		System.out.println("c3의 color : "+c3.color+", geartype : "+c3.geartype+", door : "+c3.door);
		
		

	}

}

c1의 color : yellow, geartype : auto, door : 2
c2의 color : grey, geartype : semi, door : 6
c3의 color : blue, geartype : manual, door : 4

👀👀👀👀궁금점!!!!!!!!!!!!




Ref

좋은 웹페이지 즐겨찾기