[JAVA] 38. 생성자 오버로딩

문정준's avatar
Feb 12, 2025
[JAVA] 38. 생성자 오버로딩

치즈버거 만들기

  • 생성자 오버로딩을 이용하여 치즈버거를 만드는 프로그램을 제작하시오.
    • 기본 가격 : 1000원 (고정)
    • 기본 양념
    • 선택적 파라미터 : 200원 추가
 

문제 분석

  • 상태 : 이름, 가격, 양념
  • Normal Cheeseburger : 이름, 가격, 양념이 고정
    • 생성자를 정의하면서 생성자 내에서 초기화
  • Customized Cheeseburger : 이름 고정, 가격과 양념은 다름
    • 따로 입력 받는 매개변수 필요 - 생성자 오버로딩
 
 

코드 작성

package ex04; public class CheeseBurger { String name; int price; String sauce; // 기본 생성자 (치즈버거, 1000, 기본 양념) public CheeseBurger() { this.name = "CheeseBurger"; // 초기화 this.price = 1000; this.sauce = "기본 양념"; } public CheeseBurger(String sauce) { this.name = "CheeseBurger"; this.price = 1000; this.sauce = sauce; } // 파라미터가 있는 생성자 > 생성자 오버로딩 (치즈버거, 1200, 케첩) public CheeseBurger(int price, String sauce) { this.name = "CheeseBurger"; this.price = price; this.sauce = sauce; } public static void main(String[] args) { // 1. 기본 치즈버거 만들기 CheeseBurger cb1 = new CheeseBurger(); // 1-1. 출력 System.out.println("메뉴 : " + cb1.name); System.out.println("가격 : " + cb1.price); System.out.println("소스 : " + cb1.sauce); System.out.println(); // 2. 케첩이 들어간 치즈버거 만들기 (가격 : 200원 추가) CheeseBurger cb2 = new CheeseBurger(1200, "케첩"); // 2-1. 출력 System.out.println("메뉴 : " + cb2.name); System.out.println("가격 : " + cb2.price); System.out.println("소스 : " + cb2.sauce); System.out.println(); // 3. 마요네즈가 들어간 치즈버거 만들기 (가격 : 1000원) CheeseBurger cb3 = new CheeseBurger("마요네즈"); System.out.println("메뉴 : " + cb3.name); System.out.println("가격 : " + cb3.price); System.out.println("소스 : " + cb3.sauce); System.out.println(); } }
 

결과

notion image
 
내용 정리
  1. 기본 생성자는 public 클래스명() { } 꼴로 정의
      • 값을 초기화할 수 있음 (this.상태 = 기본값)
  1. 생성자 오버로딩은 기본 생성자에 parameter를 추가
      • parameter의 개수, 타입이 다르면 다른 생성자
 
Share article

sxias