Item68. 일반적으로 통용되는 명명 규칙을 따르라.
Java 명명규칙은 철자와 문법 범주로 나뉜다.
철자 규칙
- 패키지,클래스,인터페이스,메소드,필드,타입 변수의 이름을 다룬다.
- 프로젝트 생성시 패키지명은 조직의 인터넷 도메인 이름을 역순으로 사용하는게 관례이다.
ex) Google : com.google , Naver : com.naver
- 나머지 패키지 이름은 해당 패키지를 설명하는 하나이상의 요소로 이루어진다.이떄 각 요소는 8자 이하의 짧은 단어로 구성한다.
ex) com.naver.cafe
- 많은 기능을 가진 경우 붙여할 요소가 많다면 계층적으로 이름을 짜는것도 좋다
ex) java.util.concurrent.atomic
class와 인터페이스의 이름의 경우 단어의 첫글자는 대문자로 시작한다. ex) List
method와 필드 변수명은 첫글자만 소문자로 하고, 나머지 단어의 첫글자는 대문자로 쓴다. ex) phoneNumber
값이 불변인 static final
상수필드는 예외적으로 모두 대문자를 사용하고, 단어사이는 밑줄로 구분한다. ex) NEGATIVE_INFINITY
타입 매개변수는 보통 한 문자로 표현한다.
대표적으로 관례상 많이 사용하는 타입매개변수들은 다음과 같다.
T : 임의의 타입
E : Collection 원소의 타입
K , V : Map의 키와 값
x : 예외
R : 메소드 반환 타입
문법 규칙
- 객체를 생성할 수 있는 클래스는 보통 단수 명사 혹은 명사구를 사용 ex) Thread
- 객체를 생성할 수 없는 클래스는 보통 복수형 명사 사용 ex) Collectors, Collections
- 인터페이스의 이름은 클래스와 똑같이 짓거나, able로 끝나는 형용사를 사용 ex) Runnable
- Annotation의 경우 명확한 규칙은 없다.
- 동작을 수행하는 method의 이름은 동사로, boolean값을 반환하는 method의 이름은 is 또는 has로 시작한다. ex) isPrime,hasSiblings
- 해당 인스턴스의 속성을 반환하는 method는 get으로 시작하는 동사구로 짓거나, 명사로 짓는다. ex) getSize , size
그 외에 타입 변환과 관련된 특별한 method 이름 규칙은 다음과 같다.
- toType 형태 (toArray,toList) : 객체의 타입을 다른 타입의 객체로 반환하는 method 명
- asType 형태 (asList) : 객체의 내용을 다른 뷰로 보여주는 method명
- typeValue 형태 (intValue) : 객체의 값을 기본 타입값으로 반환하는 method명