package CHAPTER05;

//Car 클래스 정의
class Car2 {
	String brand; // 자동차 브랜드
	int year; // 자동차 연식

	// 기본 생성자: 다른 생성자 호출 (초기값 설정)
	Car2() {
		this("Unknown", 2000); // this()를 사용하여 두 매개변수를 받는 생성자 호출
	}

	// 브랜드만 입력받는 생성자: 기본 연식(2022) 설정
	Car2(String brand) {
		this(brand, 2022); // this()를 사용하여 brand 값과 기본 연식을 넘겨줌
	}

	// 모든 값을 입력받는 생성자 (주 생성자)
	Car2(String brand, int year) {
		this.brand = brand; // this를 사용하여 멤버 변수와 매개변수 구분
		this.year = year;
	}

	// 자동차 정보를 출력하는 메소드
	void printInfo() {
		System.out.println("브랜드: " + brand + ", 연식: " + year);
	}
}

public class C5_15_ConstructorCall {
	public static void main(String[] args) {
		Car2 c1 = new Car2(); // 기본 생성자로 객체 생성 (Unknown, 2000)
		Car2 c2 = new Car2("Hyundai"); // 브랜드만 설정 (Hyundai, 2022)
		Car2 c3 = new Car2("Tesla", 2023); // 브랜드와 연식 모두 설정 (Tesla, 2023)

		// 각 객체의 정보 출력
		c1.printInfo();
		c2.printInfo();
		c3.printInfo();
	}
}
