[Java] 생성자 Construct

suhjaesuk·2022년 11월 11일
0

Java

목록 보기
4/4
post-thumbnail

생성자

iv가 생성될 때마다 호출되는 iv 초기화 메서드. iv 초기화를 간단하게 하고, 코드의 중복을 피하기 위해 사용한다.

  • 이름이 클래스 이름과 같아야 한다.
  • 리턴값이 없다.
  • 모든 클래스는 반드시 생성자를 가져야 한다.
  • 매개변수가 없는 생성자를 기본 생성자라 한다.
    • 생성자가 하나도 없을 때, 컴파일러가 자동으로 추가
    • 에러방지를 위해 컴파일러에 의지하지 말고 기본 생성자를 작성하는 습관을 들이자

📌 생성과 사용 예시

class Car {
	String color;
	String gearType;
	int door;

	Car() {} //기본 생성자
	Car(String c, String g, int d) { //매개변수가 있는 생성자
			color = c;
			gearType = g;
			door = d;
	}
}
public class CarApp {
    public static void main(String[] args) {
        Car car1 = new Car(); 
        Car car2 = new Car("white", "aute",4); //생성자를 통한 객체 초기화
        System.out.println(car2.color+","+car2.gearType+","+car2.door);
    }
}
//출력 white,aute,4

this()와 this

this()와 this는 전혀 다른 기능을 한다. 차이점을 알아보자

  • this() : 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.
  • this: 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재한다.

📌 생성자 this()

this()는 생성자에서 다른 생성자를 호출할 때 사용한다.

  • 다른 생성자 호출시 반드시 첫 줄에서만 사용가능
class Car {
	String color;
	String gearType;
	int door;

	Car() {
	this("white", "auto", 4); //this() 사용
	}

	Car() {
	this("color", "auto", 4); //this 사용
	}

	Car(String c, String g, int d) { //매개변수가 있는 생성자
			color = c;
			gearType = g;
			door = d;
	}
}

📌 참조변수 this

  • 인스턴스 자신을 가리키는 참조변수
  • 인스턴스 메서드(생성자 포함)에서 사용가능
  • 지역변수 lv와 인스턴스 변수 iv를 구별할 때 사용
class Car {
	String color;
	String gearType;
	int door;

	Car(String color, String gearType, int door) {
		this.color = color; //this.color 는 iv, color는 lv
		this.gearType = gearType;
		this.door = door;
	}
}

📌 Ref. 자바의 정석 기초편

profile
wanna be BE-Developer

0개의 댓글