일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java #객체지향 #자바
- 이펙티브자바
- 해쉬맵
- 자바 #java #상속
- 자바
- java #자바 #상속 #오버라이딩
- Mixin
- IntelliJ
- java #자바 #상속
- java #자료형
- 객체지향프로그램
- Math.sqrt()
- 자바 #변수 #java
- 메서드
- java # for문 #반복문
- java #continue #반복문
- 믹스인
- 람다
- HashMap
- Arrays.toString()
- java
- EffectiveJava
- overring
- java #조건문 #if조건문 #if
- java #중첩반복문 #구구단
- java #조건문 #if문
- 자바 #JAVA
- 인텔리제이
- 스프링 #Spring #spring #입문서
- Math.pow()
- Today
- Total
목록이펙티브자바 (2)
산으로 가자▲

자바의 다중 구현 매커니즘 : 인터페이스, 추상 클래스 자바 8부터는 인터페이스도 default 메서드를 제공할 수 있다. 인터페이스 vs 추상 클래스 공통점 선언 내용은 존재하지만 구현 내용은 없다(추상 메서드를 갖는다) 인스턴스로 생성할 수 없다. 목적 인터페이스 : 함수의 껍데기만 존재해서 구현을 강제한다. 구현 객체가 같은 동작을 하도록 보장한다. Has - A 추상 클래스: 추상 클래스를 상속 받아 기능을 이용하고 추가시킨다. Is - A 다중 상속 인터페이스 : 여러개의 인터페이스를 구현할 수 있다. 추상 클래스 : 여러 클래스를 상속 받을 수 없다. 책 본문 내용중 타입이라는 표현은 구현해야하는 메서드를 아울러 표현하는 것으로 이해했다. 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 ..

상속의 위험성 외부 클래스를 상속할 때의 위험성은 앞선 '상속보다 컴포지션을 사용하라'라는 게시글에서 다뤘다. 여기서 외부란 프로그래머 통제권 밖에 있어서 언제 어떻게 변경될지 모른다는 뜻이다. 예를 들어 Set, List같이 프로그래머가 직접 다루지 않는 클래스들을 말한다. 상속은 문서화를 요구한다. 메소드를 재정의하면 어떤 일이 일어나는지를 정확히 정리하여 문서로 남겨야한다. 즉, 상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 이용하는지 문서로 남겨야한다. 상속용 클래스에서 재정의 가능한 메서드는 어떻게 동작하는지 문서화해야할 필요가 있다. 만약, 재정의 가능한 메서드가 내부의 다른 재정의 가능한 메서드를 호출해서 사용하는 상황이라면 기능이 오동작 할 수 있다. 재정의 가능한 메서드는..