[JAVA] 33. Burger 생성자

문정준's avatar
Feb 11, 2025
[JAVA] 33. Burger 생성자
생성자 (Constructor)
객체가 생성될 때 객체를 초기화하는 메서드
객체를 생성할 때에만 값 설정 가능

버거 판매

  • Burger 클래스를 선언하고, 인스턴스를 생성함과 동시에 버거의 이름과 가격을 초기화하는 프로그램을 작성하시오.
 

문제 분석

  • 생성자 : 객체가 생성될 때 객체를 초기화하는 메서드
  • 클래스.필드 = n vs 메서드를 통한 상태 변경
  • 상태를 출력하는 메서드의 작성
 

코드 작성

package ex04; class Burger { // 상태 : name, price private String name; private int price; // 생성자 : stack에 저장된 데이터를 heap에 옮기기 : 초기화 public Burger(String n, int p) { name = n; price = p; } public String getName() { return name; } public int getPrice() { return price; } } public class BurgerTest { public static void main(String[] args) { Burger b1 = new Burger("기본버거", 2000); System.out.println("버거 이름 : " + b1.getName()); System.out.println("버거 가격 : " + b1.getPrice()); // System.out.println(b1.name); // System.out.println(b1.price); // b1.name = "기본버거"; // b1.price = 2000; } }
 

결과

notion image
 
내용 정리
  1. 생성자 생성 이후 클래스 내부 상태를 직접 변경?
      • 문법 상 오류는 없으나, 객체 지향에 맞지 않는 프로그래밍
      • 이를 막기 위한 접근제어자 private 사용
  1. 클래스 상태는 행위(메서드)로만 변경
  1. 각 행위에는 가능하면 하나의 책임(상태)만을 맡도록 설정
      • 추후 메서드 관리가 용이
Share article

sxias