1. 들어가며 parameter와 return value는 어떻게 다루는 것이 좋은가? method signature는 어떻게 설계할 것인가? method 문서는 어떻게 만드는 것이 바람직한가?에 대해서 다룹니다. 2. Method규칙38: 인자의 유효성을 검사하라.index는 음수가 될 수 없다거나 객체 참조는 null이 될 수 없다는 등의 유효성 검사는 반드시 문서로 남기고 메소드 시작 부분에서 검사해야 한다.public 메소드라면 인자 유효성이 위반되었을 때 경우에 발생하는 예외를 Javadoc의 @throws 태그를 사용해 문서화해라.보통 IllegalArgumentException이나 IndexOutOfBoundsException, NullPointerException이 이용된다.public이 ..
규칙 30: 상수 대신 enum을 사용해라.Enumerated type은 고정 개수의 상수들로 값이 구성되는 자료형이다. Java의 enum 자료형과 비슷하지만 다른 언어들보다 강력하다. 다른 언어들의 enum은 결국 int값이다.Enum 자료형은 실질적으로 final로 선언된 것이나 마찬가지여서 안전하다.Enum 상수에 데이터를 넣으려면 객체 필드를 선언하고 생성자를 통해 받은 데이터를 그 필드에 저장하면 된다.모든 enum 상수를 선언된 순서대로 저장하는 배열을 반환하는 static values 메서드가 기본으로 정의되어 있음에 주의하자.Enum 자료형에 상수별 class body 안에서 실제 메서드로 재정의할 수 있다.public enum Operation { PLUS(“+”) {double app..
용어예형인자 자료형(parameterized type)List실 형인자(actual type parameter)String제네릭 자료형(generic type)List형식 형인자(formal type parameter)E비한정적 와일드카드 자료형(unbounded wildcard type)List무인자 자료형(raw type)List한정적 형인자(bounded type parameter)재귀적 형 한정(recursive type bound)>한정적 와일드카드 자료형(bounded wildcard type)List제네릭 메서드(generic method)Static List asList(E[] a)자료형 토큰(type token)String.class규칙23: 새 코드에는 무인자 제네릭 자료형을 사용하지..
규칙 13: 클래스와 멤버의 접근 권한은 최소화하라.정보 은닉과 캡슐화를 통해 모듈의 재사용성을 높이고 병렬적인 개발을 가능하게 하자. 그것의 기초는 각 클래스와 멤버는 가능한 한 접근 불가능하도록 만드는 것이다. 1. 객체 필드는 절대로 public으로 선언하면 안 된다. 필드에 저장될 값을 제한할 수 없고 다중 스레드에 안전하지 않다.2. 길이가 0이 아닌 배열은 언제나 변경 가능하므로 배열 필드를 반환하는 접근자를 정의하면 안 된다. 규칙 14: public 클래스 안에는 public 필드를 두지 말고 접근자 메서드를 사용하라. 규칙 15: 변경 가능성을 최소화해라.변경 불가능 클래스를 지향해라. 아래의 다섯 규칙을 따르면 된다.객체 상태를 변경하는 메서드를 제공하지 않는다.상속할 수..
0. 들어가며면접 준비를 하면서 큰 도움을 주셨던 분께서 강력 추천해주셨던! 책인 Effective Java를 읽어보려고 합니다. 항상 그렇지만 읽기만 하는 것은 휘발성이 강하므로 글로 열심히 남겨서 정리할 예정입니다 :) 2장 객체의 생성과 삭제규칙1: 생성자 대신 정적 팩토리 메소드를 사용할 수 없는지 생각해보라정적 팩토리 메소드장점a) 생성자와는 달리 정적 팩토리 메소드에는 이름이 있다.b) 생성자와는 달리 호출할 때마다 새로운 객체를 생성할 필요는 없다.c) 생성자와는 달리 반환값 자료형의 하위 자료형 객체를 반환할 수 있다.d) 형인자 자료형(parametized type) 객체를 만들 때 편하다. (kotlin과 연관성)단점a) public이나 protected로 ..
00. 들어가며 객체지향의 사실과 오해의 저자 조영호님의 3년만의 후속작입니다. 해당 책을 리뷰하면서 실전적인 책이라기보단 작가분의 객체지향적 철학 전달에 중점이 있던 책이라고 말씀드렸었습니다. 해당 책의 서평은 다음에서 읽으실 수 있습니다. https://rawshrimpsushi.tistory.com/28 그래서 유익하면서도 뭔가 아리송한 느낌은 지울 수 없었습니다. 이 책은 그런 갈증을 한번에 날려주는 책이었습니다. Java Next step처럼 실전적으로 코드를 개선해보며 저자분의 객체지향 철학을 전달 받을 수 있는 아주 좋은 책이었습니다. 그래서 Java Next Step처럼 이 책도 한 단원씩 정리해서 올려보려고 합니다! 1장 – 객체의 자율성을 높여라 객체지향의 사실과 오해에서 데이터 중심으..