일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- raw 타입
- junit 5
- auto.create.topics.enable
- 제네릭 와일드 카드
- Java
- 접근지시자
- 바운디드 타입
- Effective JAVA
- annotation processor
- 함수형 인터페이스
- 자바할래
- 프리미티브 타입
- 로컬 클래스
- System.in
- 자바스터디
- 정렬
- Study Halle
- public 필드
- 익명 클래스
- 제네릭 타입
- 스파르타코딩클럽
- 합병 정렬
- github api
- Switch Expressions
- 람다식
- 상속
- 브릿지 메소드
- System.out
- 항해99
- System.err
- Today
- Total
목록2025/04 (4)
코딩하는 털보
package me.rockintuna.effectivejava.item;/*상속보다는 컴포지션을 사용하라 */public class Item18 extends Item18SuperClass { /* 내가 제어할 수 없는 다른 패키지의 상위 클래스를 상속받았을 때 문제다. 이 상위 클래스에서 상속받아 사용할 수 있는 내부 구현이 달라지는 경우, 해당 내부 구현을 사용하는 메서드에서 오류가 발생하기 쉽다. 상위 클래스 변화에 따라 하위 클래스 모두 변경해야 할 수 있다. */ @Override public String getName() { return super.getName(); } /* 상위 클래스를 완벽히 이해하지 않는이상 재정..
package me.rockintuna.effectivejava.item;import java.math.BigInteger;/*변경 가능성을 최소화하라 */public final class Item17 { /* 불변 객체 : 생성된 시점부터 파괴될 때 까지 상태가 변경되지 않는 객체 클래스를 불변으로 만들기 1. setter가 없어야함 2. 클래스를 확장할 수 없어야함 (대표적으로 final 클래스) 3. 모든 필드를 private final로 선언 4. 가변 객체를 참조하는 필드가 있다면 해당 필드를 사용하는 생성자, getter, readObject 메서드에서 방어적 복사를 한다. 불변으로 만들 수 없다면 변경할 수 있는 부분을 최소화하자 - 별다른 ..
package me.rockintuna.effectivejava.item;import java.util.List;/*public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 */public class Item16 { public List memberList; /* public class에서 public 필드를 사용하면 1. 내부 표현을 변경하려면 API가 변경되어야 한다. : public class의 public 필드 자체가 API 이면서 내부 표현이기 때문 2. 불변식을 보장할 수 없다 : 클라이언트에서 언제든지 필드의 인스턴스를 변경하거나 수정할 수 있다. 3.부수 작업을 수행할 수 없다. : 접근자 메서드에서는 부가 작업을 추가..
package me.rockintuna.effectivejava.item;import java.util.List;/*클래스와 멤버의 접근 권한을 최소화 하라*/public class Item15 { /* 정보 은닉, 캡슐화의 장점 컴포넌트들을 서로 독립시킨다. => 개발,테스트,최적화,적용,분석,수정을 개별적으로 할 수 있게 해준다. - 개발 속도 (병렬 개발) - 관리 비용 (유지보수 쉬움) - 유닛 테스트를 통한 컴포넌트 성능 최적화 - 재사용성 - 거대한 시스템 개발을 쉽게 해줌 Java의 정보 은닉 장치 [접근 제한자]를 통해 모든 클래스와 멤버의 접근성을 가능한 좁히자. public 접근 제한자 => 외부 접근을 허용한다는 것 (API)..