전체글236 [Effective Java] 아이템11 - equals를 재정의하려거든 hashCode도 재정의하라 equals를 재정의한 클래스 모두에서 hashCode도 재정의해야 합니다. 그렇지 않으면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으킬 것입니다. Object 명세에서 발췌한 규약 equals 비교에 사용되는 정보가 변경되지 않았다면, 애플리케이션이 사용되는 동안 그 객체의 hashCode 메서드는 몇 번을 호출해도 일관되게 항상 같은 값을 반환해야 합니다. 단, 애플리케이션을 다시 실행한다면 이 값이 달라져도 상관 없습니다. equals(Object)가 두 객체를 같다고 판단했다면, 두 객체의 hashCode는 똑같은 값을 반환해야 합니다. equals(Object)가 두 객체를 다르다고 판단했더라도, .. 2021. 9. 9. [스프링 핵심 원리 - 기본편] 새로운 할인 정책 개발 RateDiscountPolicy 코드 추가 import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent = 10; @Override public int discount(Member member, int price) { if (member.getGrade() == Grade.VIP) { return price * discountPercent / 100; } else { return 0; } } } (RateDiscountPolicy.java) 테스트 작성 import hello.core.memb.. 2021. 9. 8. [스프링 핵심 원리 - 기본편] 주문과 할인 도메인 실행과 테스트 주문과 할인 정책 실행 import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Order.. 2021. 9. 8. [스프링 핵심 원리 - 기본편] 주문과 할인 도메인 개발 할인 정책 인터페이스 import hello.core.member.Member; public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } (DiscountPolicy.java) 정액 할인 정책 구현체 import hello.core.member.Grade; import hello.core.member.Member; public class FixDiscountPolicy implements DiscountPolicy { private int discountFixAmount = 1000; // 1000원 할인 @Override public int discount(Member membe.. 2021. 9. 8. 이전 1 ··· 26 27 28 29 30 31 32 ··· 59 다음