1. 생성자(Burger)를 이용하여 객체를 초기화하는 코드
package ex04;
class Burger {
    String name;
    int price;
    // 생성자
    public Burger(String n, int p) { // stack에 있는 데이터
        name = n; // 초기화 코드 (heap에 저장할 수 있도록 해줌)
        price = p; // 초기화 코드 (heap에 저장할 수 있도록 해줌)
    }
}
public class BurgerTest {
    public static void main(String[] args) {
        Burger b1 = new Burger("기본버거", 2000); // 객체의 초기화
        System.out.println(b1.name);
        System.out.println(b1.price);
        
        // b1.name = "기본 버거"; -> 이렇게 하면 안된다. 왜냐? 직접 변경이기때문에, 상태는 행위로만 변경할 수 있음
        // b1.price = 2000; -> 이렇게 하면 안된다. 왜냐? 직접 변경이기때문에, 상태는 행위로만 변경할 수 있음
    }
}
2. 생성자(Cat)를 이용하여 객체를 초기화하는 코드
package ex04;
class Cat {
    private String name;
    private String color;
    public String getName() {
        return name;
    }
    public String getColor() {
        return color;
    }
    public Cat(String name, String color) {
        this.name = name; // this 는 heap을 가르킨다.
        this.color = color; // this 는 heap을 가르킨다.
    }
}
public class CatTest {
    public static void main(String[] args) {
        Cat c1 = new Cat("톰", "하얀색");
        System.out.println(c1.getName());
        System.out.println(c1.getColor());
    }
}

Share article