Java/클린 코딩 (with OOP)

1. 자바 네이밍 규칙 (java 네이밍 컨벤션)

민돌v 2022. 6. 2. 00:06

[짧은 정리]

  • 상수(final) : 대문자
  • 변수 : 소문자 or 카멜
  • 메소드 : 카멜
  • 클래스 : 파스칼
  • URL : 소문자 + 명사(자원) + 언더바(x) 대시[-]로
  • 변수키워드 정렬 순서 :  private static final (PSF)

 

 


0. 자바 공통 네이밍 규칙

 

1. 대소문자가 구분되어야하고, 길이에 제한이 없다 

  • 길이에 제한이 없다가 중요한 것 같다(변수명으로 의미부여를 명확하게 -> 주석사용 지양)

2. 예약어 사용 x 

  • java에서 사용하고있는 명들 (ex - class, import, char, break)

3. 숫자로 시작하면 안된다

4. 특수문자는 '_(언더바)' 와 '$' 만 허용한다.

5. 파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다.

  •       PascalCase : 모든 단어에서 첫 번째 문자는 대문자이며 나머지는 소문자이다.
  •       camelCase : 최초에 사용된 단어를 제외한 첫 번째 문자가 대문자이며 나머지는 소문자이다.

6. 반의어는 반드시 대응하는 개념으로 사용해야 한다.

 

[주로 쓰는 반의어]

get / set
add / remove
create / destroy
start / stop
insert delete
increment / decrement
old / new
begin / end
girst / last
up / down
min / max
next / previous
open /close
show /hide
suspend /resume
parent / child
받다/ 받다
추가/제거
창조/파괴하다
시동/정지
삽입/삭제
증가/감소
구/신
시작/끝
긴/마지막
위/아래
최소/최대
다음/이전
열다/ 닫다
보이다/ 숨기다
일시 정지/재개하다
부모/아이

 


 

1. 패키지(Package 명명 규칙)

 

1. 패키지명은 표준 패턴을 따라야 한다.

  • Ex) [com].[Company].[Project].[TopPackage].[LowerPackage]

2. 모두 소문자 사용을 권장 (소문자로 시작)

3. 가급적 한단어 사용 권장

 


 

2. 클래스 (Class)

 

1. 클래스명은 파스칼을 사용한다.

2. 클래스명은 명사로 시작한다.

3. 인터페이스, 추상 클래스, 인터페이스를 구현하는 클래스

  • Ex) public abstract class Animal {}

 

파스칼 표기법이란

  • 모든 문자의 첫글자 대문자로 표기
  • 구분되는 글자마다 첫글자를 대문자로
  • "쌍봉낙타 표기법" 
  • 클래스명에 사용, 가끔 함수에도 사용
  • ex) HelloWorld, VeryVeryFunny

 


3. 메소드

  • 메소드는 카멜 표기법으로 (첫자는 소문자)
  • 동사로 시작
  • computeAge( ) , printName( ) 등

 

카멜 표기법이란

  • 모든 문자의 첫글자 소문자 표기
  • 구분되는 글자마다 첫글자를 대문자로
  • "단봉낙타 표기법" 
  • 메소드에 사용, 변수에도 사용
  • ex) helloWorld, veryVeryFunny

 


4. 변수

소문자 OR 파스칼

String userName;
Integer age

5. 상수 (final)

대문자

한번 선언되고 바뀌지 않는 변수는, static final 처리

private static final String WRAPPER_VERSION = "0.5.6";

6. 변수 키워드 순서

private static final 의 선언 순서

 PSF 의 순서로 많이들 외운다고 한다,,

P => private / public / protected
S => static / abstract / ...
F => final

 

 

 

 

 

참고

자바 네이밍 컨벤션 : https://m.blog.naver.com/reona7140/221306141987