투스트링1 [이펙티브 자바 : 2장] 모든 객체의 공통 메소드 Object는 객체를 만들 수 있는 구체 클래스지만 기본적으로는 상속해서 사용하도록 설계되었다. Object에서 final이 아닌 메소드 (equals, hashCode, toString, clone, finalize)는 모두 재정의(오버라이딩)를 염두에 두고 설계된 것이라 재정의 시 지켜야 하는 일반 규약이 명확히 정의되어 있다. 그래서 Object를 상속하는 클래스, 즉 모든 클래스는 이 메소드들을 일반 규약에 맞게 재정의 해야 한다. 메소드를 잘못 구현하면 대상 클래스가 이 규약을 준수한다고 가정하는 클래스(HashMap과 HashSet 등)를 오동작 하게 만들 수 있다. [아이템 10] equals는 일반 규약을 지켜 재정의하라 equals 재정의가 필요치 않는 경우 하나. 각 인스턴스가 본질적으.. 2020. 6. 27. 이전 1 다음