패키지 이름은 모두 소문자로 작성한다.
package com.awesome.math;
import
를 할 때는 전체 이름을 다 적는다. (*를 사용하지 않음)
틀린 방식:
import com.awesome.*;
올바른 방식:
import foo.bar;
클래스와 열거형을 선언할 때는 파스칼 표기법을 따른다.
public class PlayerManager {
// 코드 생략}
public enum AccountType {
// 열거형 멤버 생략}
클래스, 멤버 변수, 메서드에는 언제나 접근 제어자를 붙인다. 단, 기본 패키지 접근 권한이 필요할 경우에는 그렇지 않는다.
public class Person {
int mHeight;// 기본 (패키지) 접근 권한private int age;
public int getAge() {
// 메서드 구현 생략}
private void doSomething() {
// 메서드 구현 생략}
}
접근 제어자는 다른 수정자(modifier)앞에 붙인다.
틀린 방식:
static public void doSomething() {
// 메서드 구현 생략}
올바른 방식:
public static void doSomething() {
// 메서드 구현 생략}
모든 메서드 이름은 카멜 표기법을 따라 짓는다.
public int getAge() {
// 메서드 구현 생략}
지역 변수와 메서드 매개변수 이름은 카멜 표기법을 따라 짓는다.
int age = 10;
public void someMethod(int someParameter) {
int someNumber;
}
메서드 이름은 동사로 시작한다.
public int getAge() {
// 메서드 구현 생략}
상수로 사용하는 final
필드의 변수명은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.
final int SOME_CONSTANT = 1;
인터페이스의 이름은 I
로 시작한다.
interface IFlyable;
열거형 멤버의 이름은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.
public enum MyEnum {
FUN,
MY_AWESOME_VALUE
}
멤버 변수의 이름은 카멜 표기법을 따른다.
public class Employee {
public String nickName;
protected String familyName;
private int age;
}
값을 반환하는 메서드의 이름은 무엇을 반환하는지 알 수 있게 짓는다.
public int getAge();
단순히 반복문에 사용되는 변수가 아닌 경우엔 i
, e
같은 변수명 대신 index
, employee
처럼 변수에 저장되는 데이터를 한 눈에 알아볼 수 있는 변수명을 사용한다.
int i;// BADint a;// BADint index;// GOODint age;// GOOD
// GOODfor (int i = 0; i < 10; ++i) {
}
줄임말(축약어)를 변수 및 메서드 명에 사용할 때는 기타 단어들과 동일하게 사용한다. 즉, 파스칼 표기법을 따르는 경우에는 오직 첫 번째 글자만 대문자로 바꾸며, 카멜 표기법을 따르는 경우에는 두 번째 단어부터 첫 번째 글자만 대문자로 바꾼다.
int orderId
String httpAddress;
String myHttp;
public
멤버 변수 대신 getter와 setter 메서드를 사용한다.
틀린 방식:
public class Employee {
public String Name;
}
올바른 방식:
public class Employee {
private String name;
public String getName();
public String setName(String name);
}
지역 변수를 선언할 때는 그 지역 변수를 사용하는 코드와 동일한 줄에 선언하는 것을 원칙으로 한다.