equals와 hashCode

public class Menu {
    private final String name;
    private final int price;

    public Menu(final String name, final int price) {
        this.name = name;
        this.price = price;
    }
}
@Test
@DisplayName("같은 객체를 equals 비교")
void equals() {
    //given
    Menu friedChicken = new Menu("치킨", 16000);
    Menu friedChicken2 = new Menu("치킨", 16000);
    //when & then
    assertThat(friedChicken).isEqualTo(friedChicken2);
}
public class Menu {
    private final String name;
    private final int price;

    public Menu(final String name, final int price) {
        this.name = name;
        this.price = price;
    }
	
    // equals 재정의
    @Override
    public boolean equals(Object o) {
        if (this == o)
            return true;
        if (!(o instanceof Menu))
            return false;
        Menu menu = (Menu)o;
        return price == menu.price && Objects.equals(name, menu.name);
    }
}

equals()