뭔 놈의 규칙이 이렇게 많은지, 익숙해질 때까지는 이 글에 들락날락 계속 해야할 것 같다. 그리하여 오늘 박성원 튜터님이 강의해주신 java 문법1 특강 노션을 참고하여 작성했다.
패키지 이름은 소문자로 작성하며, 단어별 구분을 위해 언더스코어(_)나 대문자를 사용하지 않는다.
나쁜 예
package com.navercorp.apiGateway;
package com.navercorp.api_gateway;
좋은 예
package com.navercorp.apigateway;
클래스 이름은 명사나 명사절로 짓는다.
인터페이스의 이름은 명사/명사절 또는 형용사/형용사절로 짓는다.
좋은 예
public interface RowMapper;
public interface AutoClosable;
좋은 예
// 동사 사용
public String renderHtml();
// 전환 메서드의 전치사 사용
public String toString();
// 빌더 패턴 적용한 클래스의 메서드
public Builder withUserId(String id);
클래스 및 인터페이스의 이름은 첫 글자를 대문자로 작성한다. (파스칼 표기법과 동일)
나쁜 예
public class reservation;
public class Accesstoken;
좋은 예
public class Reservation;
public class AccessToken;
메서드 및 변수의 첫 번째 단어는 소문자로 작성하고, 이어지는 단어의 첫 글자는 대문자로 작성한다.
나쁜 예
private boolean Authorized;
private int AccessToken;
좋은 예
private boolean authorized;
private int accessToken;
static final로 선언된 필드는 상수로 간주하며, 대문자로 작성하고 단어 사이에는 언더스코어(_)를 사용한다.
좋은 예
public static final int UNLIMITED = -1;
public static final String POSTAL_CODE_EXPRESSION = "POST";
메서드 블록 범위 이상의 생명 주기를 가지는 변수에는 1글자로 된 이름을 쓰지 않는다. 단, 반복문의 인덱스나 람다 표현식의 파라미터 등 짧은 범위의 임시 변수에서는 1글자 변수명을 사용할 수 있다.
나쁜 예
HtmlParser p = new HtmlParser();
좋은 예
HtmlParser htmlParser = new HtmlParser();
한 줄에 여러 문장을 작성하지 않고, 문장이 끝나는 ; 뒤에는 새 줄을 삽입한다.
나쁜 예
int base = 0; int weight = 2;
좋은 예
int base = 0;
int weight = 2;
클래스, 메서드, 조건문, 반복문 등의 코드 블록을 감싸는 중괄호는 K&R 스타일(Kernighan and Ritchie style)을 따른다.
나쁜 예
public class SearchConditionParser
{
public boolean isValidExpression(String exp)
{
if (exp == null){
return false;
}
for (char ch : exp.toCharArray())
{
....
}
return true;
}
}
좋은 예
public class SearchConditionParser {
public boolean isValidExpression(String exp) {
if (exp == null) {
return false;
}
for (char ch : exp.toCharArray()) {
....
}
return true;
}
}
조건문이나 반복문이 한 줄로 끝나더라도 중괄호를 사용한다.
나쁜 예
if (exp == null) return false;
for (char ch : exp.toCharArray()) if (ch == 0) return false;
좋은 예
if (exp == null) {
return false;
}
for (char ch : exp.toCharArray()) {
if (ch == 0) {
return false;
}
}
완