본문 바로가기

프로그래밍 언어/Java

Java Code Conventions

Class

  • fields : 인스턴스 변수로 클래스의 속성 properties 를 나타낼 수 있도록 이름을 선언합니다. 
  • methods : 클래스 내부의 함수로 클래스가 수행하는 행동 behavior를 나타내는 이름으로 선언합니다. 
public class ClassName {

	fieldType fieldName;
    ...
    
    public returnType methodName(){
    	
        // ...statements...;
        
        return returnType;
    }
}

public void someMethod() {
	// 위에서 선언한 클래스를 objectName이라는 이름을 가진 객체로 선언해서 사용
	ClassName objectName = new ClassName();
    returnType ret = object.methodName();
}

Naming 

  • class 이름 : 명사, 카멜표기법, 첫번째 글자는 반드시 대문자 
  • method 이름 : 동사, 카멜표기법, 첫번째 글자는 반드시 소문자 
  • variable 이름 : 짧지만 의미가 던잘되어야 하며,  소문자
  • constant 이름 : 대문자, 띄어쓰기는 언더바로 
// class : 대문자로 시작 + 명사 + 카멜표기법
public class HelloWorld(){ ... }

// method : 소문자로 시작 + 동사 + 카멜표기법
public class printHelloWorld(){ ... }

// variable : 소문자
int amount = 100;

// constant : 대문자, 띄어쓰기는 언더바
public static final int AMOUNT_X = 100;

 

  • 같은 데이터 타입이더라도 한 줄에 연속으로 선언하지 않고, 따로 하는 것이 좋습니다.
...
private int amount1;
private int amount2;
private int amount3;
...

 

Comment

  • 주석 처리 단축키 in VSCode
    • Mac : command + /(?)
    • Window : ctrl + /(?)
  • 주석 처리 단축키 in eclipse
    • 행 단축키 // : ctrl + /(?)
    • 범위 단축키 /* */ : ctrl + shift + /(?) 
  • 윈도우에서 가끔 단축키가 안먹히고 그냥 ? 가 쓰이는 경우가 있는데 이때는 윈도우 하단 우측에 보면 이미지와 같은 아이콘이 있는데 이를 클릭해서 Microsoft 입력기로 되어 있는지 확인해야 한다. 한컴 입력기일 경우 주석 단축키가 안됩니다. 

  • 필요시 클래스 첫 부분에 /* */으로 주석 처리한 클래스 및 인터페이스 구현에 대한 설명을 주석으로 달아둡니다.
  • 들여쓰기를 정확하게 하여 코드 구조를 쉽게 파악할 수 있도록 합니다. 
  • 메소드 또는 클래스 블럭 단위로 한 줄씩 띄워줍니다. 
public ClassName(){
	...
}
// ------------------------------이렇게 blank line을 추가
public ClassName(){
	...
}

Format

  • 이클립스에서 Ctrl + Shift + F를 누르면 자동으로 코드 포맷이 정리됩니다. 
  • 자동 포맷 세팅은 window -> preference -> java -> code style -> formatter 에서 할 수 있습니다.

Code Optimization

  • == 대신 .equals()를 씁니다.
if ( a === b ) ...

if (a.equals(b)) ...

 

  • 동일한 포맷을 반복해서 출력하는 경우 코드 중복을 최소화합니다.
if (m == 1) System.out.println("Jan");
else if (m == 2) System.out.println("Feb");
else if (m == 3) System.out.println("Mar");
else if (m == 4) System.out.println("Apr");
else if (m == 5) System.out.println("May");
else if (m == 6) System.out.println("Jun");
else if (m == 7) System.out.println("Jul");
else if (m == 8) System.out.println("Aug");
else if (m == 9) System.out.println("Sep");
else if (m == 10) System.out.println("Oct");
else if (m == 11) System.out.println("Nov");
else if (m == 12) System.out.println("Dec");

============================================>

String[] months = { "", "Jan", "Feb", "Mar", "Apr", "May"	
					"Jun", "Jul", "Aug", "Sep", "Oct", "Now", "Dec"	};
	...
    
System.out.println(months[m]);

 

  • 변수는 반복문 내에서 사용할 변수더라도 반복문 밖에 선언하는 것이 좋습니다.

References

  • 성균관대학교 소프트웨어학과 타메르 교수님 2021-1 자바 프로그래밍 실습