4장 클래스와 인터페이스
아이템 15 클래스와 맴버의 접근 권한을 최소화 하라
-> 아래의 블로그를 참조해서 공부했습니다
[이펙티브 자바] 아이템15 | 클래스와 멤버의 접근권한을 최소화해라
정보은닉(캡슐화) > 잘 설계된 컴포넌트는 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 잘 숨겨 구현과 API를 분리한다. 오직 API를 통해 다른 컴포넌트와 소통하며 서로의 내부 동작 방
velog.io
아이템 16 public 클래스에서 public 필드가 아닌 접근자 메서드를 사용하라
https://hyeon9mak.github.io/Effective-Java-item16/
[Effective-Java] 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
전체적인 스터디 내용은 JunHyeok96/effective-java에서 확인 가능!
hyeon9mak.github.io
아이템 17 변경 가능성을 최소화하라
[ 이펙티브 자바 ] 아이템 17 변경 가능성을 최소화하라
불변 클래스란 그 인스턴스의 내부 값을 수정할 수 없는 클래스. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. String, 기본 타입의 박싱된 클래스, B
velog.io
아이템 18 상속보다는 컴포지션을 사용하라
[이펙티브 자바] 아이템18 | 상속보다는 조합(컴포지션)을 사용하라
상속의 위험성 상위 클래스와 하위 클래스가 모두 같은 프로그래머가 통제하는 패키지 안에서라면 상속도 안전한 방법이다. 확장할 목적으로 설계되거나 문서화도 잘 된 클래스도 마찬가지로
velog.io
아이템 19 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금하라
https://sasca37.tistory.com/259
[이펙티브자바] 아이템19 : 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하
상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 이용하는지 문서로 남겨야 한다. 클래스의 API로 공개
sasca37.tistory.com
아이템 20 추상 클래스보다는 인터페이스를 우선하라
[이펙티브 자바] 아이템20 | 추상클래스보다는 인터페이스를 우선시하라
자바 제공 다중 구현 메커니즘 자바가 제공하는 다중구현 메커니즘은 추상클래스와 인터페이스 두가지다. 자바8부터 인터페이스도 디폴트 메서드를 제공할 수 있게되어, 이제 두 메커니즘 모두
velog.io
아이템 21 인터페이스는 구현하는 쪽을 생각해 설계하라
[Effective Java] 아이템 21 : 인터페이스는 구현하는 쪽을 생각해 설계하라
1) Default Method 자바 8 이전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었지만, 자바 8부터는 디폴트 메소드 를 통해 인터페이스에 메서드를 추가하는 것이 가능
velog.io
아이템 22 인터페이스는 타입을 정의하는 용도로만 사용하라
[이펙티브 자바] 아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라
인터페이스는 자신을 구현한 클래스의 인스턴스를 참조할 수 있는 타입 역할을 하고, 즉 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에
velog.io
아이템 23 태그 달린 클래스보다는 클래스 계층구조를 활용하라.
https://insight-bgh.tistory.com/408
[Effective Java] 아이템23 태그 달린 클래스보다는 클래스 계층구조를 활용하라
■ 태그 달린 클래스 두 가지 이상의 의미를 표현할 수 있으며, 그중 현재 표현하는 의미를 태그 값으로 알려주는 클래스를 본적이 있을 것 이다. 다음은 원과 사각형을 표현할 수 있는 클래스이
insight-bgh.tistory.com
아이템 24 맴버 클래스는 되도록 static으로 만들라
[이펙티브 자바] 아이템 24. 멤버 클래스는 되도록 static으로 만들라
중첩 클래스는 다른 클래스 안에 정의된 클래스다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 하며, 그 외의 쓰임새가 있다면 톱레벨 클래스로 만들어야 한다. 중첩 클래스 종류정적
velog.io
아이템 25 톱 레벨 클래스는 한 파일에 하나만 담으라
https://ajdahrdl.tistory.com/320?category=924852