JAVA_25_this
생성자 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
Author And Source
이 문제에 관하여(JAVA_25_this), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lecharl/JAVA25-6hsypjg2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)