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명

Comments