Effective Java

Effective Java

[아이템 18] 상속보다는 컴포지션을 사용하라

😇 Effective java Item 18 이 책에서의 ‘상속'은 (클래스가 다른 클래스를 확장하는) 구현 상속을 말한다. 이번 아이템 에서 논하는 문제는 (클래스가 인터페이스를 구현하거나 인터페이스가 다른 인터폐이스를확장하는) 인터폐이스상속과는무관하다. 메서드 호출과 달리 상속은 캠슐화를 깨뜨린다. 변형된 HashSet : 원소 수 저장 , 접근자 메서드 추가 됨. pubUc Class InstrumentedHashSet extends Hashset { // 추가된 원소의 수 private int addCount = 0; public InstrumentedHashSet() { } pubUc InstrumentedHashset(int initCap, float 10adFactor) { super(ini..

Effective Java

[아이템 13] clone 재정의는 주의해서 진행하라

clone은 객체를 복사한다. Cloneable 구현 예시 public class TestCloneDto implements Cloneable { private String name; private String email; public String toString () { return " name : " + name + " email : " + email; } public TestCloneDto(String name, String email) { this.name = name; this.email = email; } @Override protected TestCloneDto clone() throws CloneNotSupportedException { return (TestCloneDto) super.c..

Effective Java

[ 아이템 12 ] toString

업무 중에 습관적으로 toString을 쓰곤 했다. 객체의 값을 확인하거나. 아무생각없이 리스트의 목록을 값을 확인해볼때에도, 디버깅 할때에도 로그를 toString으로 쓰면서 디버깅 해본적도 꽤많았다. Object 의 기본 toString 메서드는 상당히 불편하다. 리액트로 개발을 할 때에는 자바스크립트에서 대충 console.log를 찍으며, 디버깅을 해도 값을 모두 확인해서 나름 편리하다? 라고 생각하며 개발을 했었기에, 다시 자바로 돌아와 개발 할 때에는 불편함을 더 많이 느꼈다. 앞 장인 equals 와 hashCode 아이템만큼의 중요성은 없지만 스스로 아무 생각없이 쓰던 함수이기에 정리해본다. 새로이 알게 된 내용은 다음과 같다. 사용자가 직접 호출하지 않더라도 java 어딘가에서 상당히 많..

girin_dev
'Effective Java' 태그의 글 목록