Java/Effective Java 3

[Effective Java] 4장. 클래스와 인터페이스

[item-15] 클래스와 멤버 접근 권한을 최소화하라 객체지향의 핵심: 캡슐화, 정보은닉 캡슐화의 장점시스템 개발 속도 향상시스템 관리비용 절감성능 최적화코드 재사용성큰 시스템을 제작하는 난이도를 낮춰줍니다잘 설계된 객체는 모든 내부 구현을 완벽히 숨겨, 실제로 구현한 코드와 외부의 사용자가 사용하는 코드를 깔끔하게 분리합니다.외부에 공개한 메서드를 통해서만 다른 객체들과 소통하며 서로의 내부 동작방식에는 전혀 개의치 않습니다 [item-16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라// Degenerate classes like this should not be public!class Point { public double x; public double y;}// E..

Java/Effective Java 2024.08.08

[Effective Java] 3장. 모든 객체의 공통 메서드

[item-10] equals는 일반 규약을 지켜 재정의하라 equals 메서드는 반드시 동치관계(equivalence relation)를 구현하며, 다음을 만족합니다.반사성 (reflexivity) : null이 아닌 모든 참조 값 x에 대해 x.equals(x)는 true이다.대칭성 (symmetry) : null이 아닌 모든 참조 값 x, y에 대해 x.equals(y)가 true이면 y.equals(x)도 true이다.추이성 (transitivity) : null이 아닌 모든 참조 값 x, y, z에 대해 x.equals(y)가 true이고 y.equals(z)도 true이면, x.equals(z)도 true이다.일관성 (consistency) : null이 아닌 모든 참조 값 x, y에 대해 x..

Java/Effective Java 2024.08.08

[Effective Java] 2장. 객체 생성과 파괴

[item-1] 생성자 대신 정적 팩토리 메서드를 이용하라 장점메서드 이름을 가질 수 있기에 명확한 이름으로 값을 생성할 수 있습니다.호출 때마다 인스턴스를 새로 생성하지 않을 수 있습니다.하위 클래스를 반환하는 유연성을 얻을 수 있습니다.매개 변수에 따라 매번 다른 클래스의 객체를 반환할 수 있습니다.정적 팩토리 메서드를 작성하는 시점에는 해당 객체의 클래스가 존재하지 않아도 됩니다.단점하위 클래스로 상속하기 위해서는 public, protected 생성자가 필요합니다.프로그래머가 찾기 어렵습니다. [item-2] 생성자의 매개변수가 많다면 빌더를 고려하라생성자에 매개변수가 많아지면 코드를 직관적으로 이해하기 어렵습니다. 이에 대한 대안으로 Setter를 사용하면 여러 개의 Setter가 호출되며 객체..

Java/Effective Java 2024.08.08