본문 바로가기
Study/Effective Java

1장: 들어가기

by 코딩하는보기 2021. 9. 17.
728x90
반응형

자바가 지원하는 타입(type; 자료형)은 인터페이스(interface), 클래스(class), 배열(array), 기본타입(primitie)까지 총 네 가지다.

애너테이션(annotation)은 인터페이스의 일종이며 열거 타입(enum)은 클래스의 일종이다.

네 가지 타입 중 처음 세 가지는 참조 타입(reference type)이라 한다.

즉, 클래스의 인스턴스와 배열은 객체(object)인 반면, 기본 타입 값은 그렇지 않다. 

클래스의 멤버로는 필드(field), 메서드(method), 멤버 클래스, 멤버 인터페이스가 있다.

메서드 시그니처는 메서드 이름과 입력 매개변수(parameter)의 타입드로 이뤄진다(반환값의 타입은 시그니처에 포함되지 않는다)

 

이 책은 상속(inheritance)을 서브클래싱(subclassing)과 동의어로 쓴다. 인터페이스 상속 대신 "클래스가 인터페이스를 구현한다(implement)" 혹은 "인터페이스가 다른 인터페이스를 확장한다(extend)"고 표현한다.

아무것도 명시하지 않은 접근 수준(access level)을 이야기할 때는 패키지 접근(package access)대신 전통적인 패키지-프라이빗(package-private)을 쓴다.

 

또한, 자바 언어 명세가 정의하지 않은 기술 용어도 몇 개 사용한다. 공개 API(extended API), 줄여서 API(application programming interface)는 프로그래머가 클래스, 인터페이스, 패키지를 통해 접근할 수 있는 모든 클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태(serialized form)을 말한다. 

API를 사용하는 프로그램 작성자를 그 API의 사용자(user)라 하고, API를 사용하는 클래스(코드)는 그 API의 클라이언트(client)라 한다.

 

클래스, 인터페이스, 생성자, 멤버, 직렬화된 형태를 총칭해 API 요소(API element)라 한다. 공개 API는 그 API를 정의한 패키지의 밖에서 접근할 수 있는 API 요소로 이뤄졌다. 다시 말해 모든 클라이언트가 접근할 수 있고, API 작성자가 지원하기로 약속한 API 요소들이다.

 

자바9에서는 모듈 시스템이라는 개념이 더해졌다. 자바 라이브러리에 이 모듈 개념을 적용하면 공개 API는 '해당 라이브러리의 모듈 선언(module declaration)에서 공개하겠다고 한' 패키지들의 공개 API만으로 이뤄진다. 즉, 공개할 패키지를 선택할 수 있다.

728x90
반응형

'Study > Effective Java' 카테고리의 다른 글

차례  (0) 2021.09.17

댓글