각 요소를 .
으로 구분하여 계층적으로 짓는다.
만약 조직 바깥에서도 사용될 패키지라면, 조직의 인터넷 도메인 이름을 역순으로 사용하면 된다. ex) com.google
각 패키지 이름은 소문자를 사용한 8자 이하의 짧은 단어 혹은 약어를 추천한다.
utilities
보다는 util
이 좋다.
하나 이상의 단어로 이루어지며, 각 단어는 대문자로 시작해야 한다
단어의 첫 글자만 딴 약자나 max
, min
처럼 널리 통용되는 줄임말을 제외하고 단어를 줄여 쓰면 안된다.
첫 글자를 소문자로 쓴다는 점만 빼면 클래스 명명 규칙과 같다. 만약 첫 단어가 약자라면, 단어 전체가 소문자여야 한다.
단, 상수 필드는 예외적으로 모두 대문자로 쓰며 단어 사이는 밑줄로 구분한다.
private static final int NEGATIVE_INFINITY = XX
주의할 점은 static final
필드이면서, 가리키는 객체가 불변이라면 비록 그 타입은 가변이더라도 상수 필드라는 것이다. 즉, static final
타입이 기본 타입이나 불변 참조 타입이라면 상수 필드에 해당한다.
타입 매개변수의 이름은 보통 한 문자로 포함한다.
T
: 임의의 타입
E
: 컬렉션 원소의 타입
K
,V
: 맵의 키와 값
X
: 예외
R
: 메서드 반환 타입
T
,U
,V
(T1
,T2
,T3
) : 임의 타입의 시퀀스
보통 단수 명사나 명사구를 사용한다.
Collectors
)able
혹은 ible
로 끝나는 형용사로 짓는다. (ex) Runnable
, Accessible
)Inject
, ImplementedBy
)어떤 동작을 수행하는 메서드 이름은 동사나 동사구로 짓는다. 단, 동사는 현재형이여야 한다. (ex) drawImage
)
is
, has
: boolean
값을 반환하는 메서드 (ex) isDigit
, hasSiblings
)
명사
, get
: 해당 인스턴스의 속성을 반환하면서 반환 타입이 boolean
이 아닌경우 (ex) size
, getTime
)
if (car.speed() > 2 * SPEED_LIMIT)
generateAudibleAlert("경찰 조심하세요!");
toType
: 객체의 타입을 바꿔서 다른 타입의 다른 객체를 반환하는 인스턴스 메서드 (ex) toString
, toArray
)
asType
: 객체의 내용을 다른 뷰로 보여주는 메서드 (ex) asList
)
typeValue
: 객체의 값을 기본 타입 값으로 반환하는 메서드 (ex) intValue
)
🔖 정적 팩터리 이름
from, of, valueOf, instance, getInstance, newInstance, getType, newType을 흔히 사용
필드 이름에 관한 문법 규칙은 클래스, 인터페이스, 메서드 이름에 비해 덜 명확하고 덜 중요하다. API 설계를 잘 했다면 필드가 직접 노출될 일이 거의 없기 때문이다.
boolean
타입 : boolean 접근자 메서드에서 앞 단어를 뺀 형태