본문 바로가기

Language/Java Plus

Effective JAVA - 1. Introduction

 

컴포넌트 규칙

- 명료성과 단순성이 포함되어야 한다.

- 컴포넌트는 사용자를 놀라게해선 안되고 예측이 가능해야 한다.

- 컴포넌트는 가능한 작되, 너무 작아서는 안된다.

- 코드는 복사되는게 아닌 재사용되어야 한다.

- 컴포넌트 사이의 의존성은 최소로 해야한다.

- 오류는 발견하자마자 가능한 빨리, 되도록이면 컴파일시 잡아야 한다.

 

 

 

"규칙을 배운 후 언제 그 규칙을 깨도 되느냐를 익혀야 한다."

"이 책은 성능보다는 프로그램을 명확하고 정확하고 견고하고 유연하고 관리하기 쉽게 작성하는데 목적을 둔다"

 

 

 

용어 개념 정리

 

타입

- 인터페이스

- 클래스

- 배열

- 기본타입

 

 

- 애너테이션(인터페이스의 일종)

- 열거 타입(클래스의 일종)

- 인터페이스, 클래스, 배열은 참조 타입 -> 즉, 인터페이스, 클래스의 인스턴스 또는 배열은 객체이다.

 

 

클래스

- 필드

- 메서드

- 메서드 시그니처(메서드의 이름과 메서드의 매개변수로 구별, 반환값의 타입은 이에 포함되지 않는다.)

- 멤버 클래스

- 멤버 인터페이스

 

 

책속의 용어

- 상속 = 서브클래싱

- 클래스가 인터페이스를 구현한다.

- 인터페이스가 다른 인터페이스를 확장한다.

- 아무것도 명시하지 않은 접근 수준 = 패키지-프라이빗

- API = 프로그래머가 클래스, 인터페이스, 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태를 의미.

- 사용자 = API를 작성하는 사람

- 클라이언트 = API를 사용하는 사람

- API 요소 = 클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태 

- 공개 API = 그 API를 정의한 패키지 밖에서 접근할 수 있는 API 요소로 이루어진다. (클라이언트가 접근 가능)

-> 그 패키지의 public 클래스, 인터페이스의 public, protected 멤버, 생성자

- 모듈 시스템 = 자바9에서 생긴 것으로 해당 라이브러리의 모듈 선언 안에서 공개하겠다고 선언한 패키지만 API로 설정하고 외부에 공개한다.