[자바스터디] 4. 자바기초(3)

2021-java-study

2021 자바 스터디 3주차 과제

자바 코드 실습

자바 코딩 규칙 (Java Code Convention)

1. 파일 이름

1.1 파일 확장자

자바 소스: .java


자바 바이트코드: .class

1.2 공통 파일 이름

GNUmakefile: make 파일 이름, 소프트웨어를 빌드 할 때는 gnumake 명령어 사용


README: 특정 디렉토리 내용 요약하는 파일 이름으로 사용

2. 파일 구조

2.1 자바 소스 파일

자바 소스 파일의 순서

  • 시작 주석
/* 클래스 이름
   버전 정보
   날짜
   저작권 주의
*/
  • Package 문, Import 문
package java.awt;
import java.awt.peer.CanvasPeer;
  • Class, Interface 선언
1. 문서화 주석
2. 클래스/인터페이스 문
3. 구현 주석
4. 클래스 변수
5. 일반 변수
6. 생성자
7. 메소드

3. 들여쓰기

3.1 줄 나누기

  • 콤마 후 두 줄로 나눔
  • 연산자 앞에서 두 줄로 나눔
  • 레벨이 높은 원칙에 따라 두 줄로 나눔
  • 앞줄과 같은 레벨식이 시작되는 새로운 줄은 앞줄과 들여쓰기를 일치

4. 주석

4.1 구현 주석

  • 블록 주석
/*
블록 주석
*/  
  • 한 줄 주석
/* 한줄 주석 */
  • 꼬리 주석
int ggori; /*꼬리 주석*/
  • 줄 끝 주석
int ggori; // 줄 끝 주석

4.2 문서화 주석

/**
 * Example 클래스는..
 */
public class Example { ...

다음 5가지를 설명

  • 자바 클래스
  • 인터페이스
  • 생성자
  • 메서드
  • 필드

5. 선언

5.1 한 줄 당 선언문 수

한줄에 하나의 선언문이 좋음

int a;  // a 선언
int size; // 크기 선언

5.2 배치

블록 시작에 선언 해야 함

void myTest(){
    int i=0;    //메서드 블록 시작
    
    if( ...) {  //if 블록 시작
        ...
    }
}

예외: 반복문

for (int i=0;i<n;i++){...}

5.3 클래스, 인터페이스 선언

  • 메서드 이름과 파라미터 리스트 괄호 사이에는 빈 공간이 없어야 함
  • 여는 중괄호 "{"는 클래스/인터페이스/메소드 선언과 동일한 줄 끝에 사용
  • 닫는 중괄호 "}"는 null문 제외 하고는 여는 문장과 동일한 들여쓰기 하는 새로운 줄에서 사용
  • 각 메소드 사이에는 한 줄 비우기

6. 문(statements)

6.1 복합문

  • 여는 중괄호 "{"는 복합문 시작 줄 마지막에 위치
  • 닫는 중괄호 "}"는 새로운 줄에 쓰고, 복합문 시작과 같은 들여쓰기
  • 둘러싸인 문들은 복합문보다 한단계 더 들여쓰기

6.2 return문

괄호를 사용하지 않는 것이 좋음

7. 공백

  • 괄호와 함께 나타나는 키워드는 공백으로 나눠야함
  • 메소드 이름과 메소드 여는 괄호 사이 공백 사용 안됨
  • .을 제외한 모든 이항 연산자들은 연산수들과 공백으로 분리 되어야 함
  • 단항 연산자의 경우는 사용 X
  • for문에서 세개의 식은 공백으로 구분
  • cast의 경우 공백으로 구분

8. 명명 규칙

8.1 Packages

  • 패키지 이름의 최상위 레벨은 항상 ASCII 문자에 포함되어 있는 소문자로, 가장 높은 레벨의 도메인 이름 중 하나여야 함
  • 패키지 이름의 나머지 부분은 조직 내부의 명명 규칙 따르면 됨
  • 예를 들어 부서명,팀명,프로젝트명,컴퓨터이름,로그인 이름 등
com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese

8.2 Classes

  • 클래스 이름은 명사여야 하고, 복합 단어일 경우 각 단어의 첫글자가 대문자
  • 간단하고 명시적으로 작성
  • 두문자어와 약어는 피하도록 함
class Raster;
class ImageSprite;

8.3 Interfaces

  • 클래스와 같이 대문자 사용 규칙 적용
interface RasterDelegate;

8.4 Methods

  • 메소드 이름은 동사여야 하고, 복합 단어일 경우 첫 단어는 소문자로 시작, 후에 나오는 단어의 첫문자는 대문자로 사용
runFast();
getBackground();

8.5 Variables

  • 변수 이름의 첫 번째 문자는 소문자, 각각 내부 단어 첫글자는 대문자
  • 이름은 짧지만 의미있게
  • 한 문자로 이루어진 변수는 암시적으로만 사용, 버릴 경우 제외하고는 피해야함
  • 임시 변수의 이름은 integer의 경우 i,j,k,m,n character의 경우는 c,d,e 사용
int i;
char c;
float myWidth;

9. 좋은 프로그래밍 습관

9.1 인스턴스 변수, 클래스 변수 외부 노출말고 접근 제공

  • 이유없이 public 선언 말기

9.2 클래스 변수와 클래스 메소드는 클래스 이름을 사용해 호출

  • 클래스 변수나 클래스 메소드를 호출하기 위해 객체 사용하는 것은 피하기
classMethod();  //좋은 사용
AClass.classMethod();   //좋은 사용
anObject.classMethod(); //나쁜 사용

9.3 변수 값 할당 시 주의

  • 하나의 문에서 같은 값을 여러개 변수들에 할당 말기
fooBar.fChar = barFoo.lchar = 'c'   // 이렇게 사용하지 않기
  • 비교 연산자와 혼동하기 쉬운 곳에 할당 연산자 사용 말기
if(c++ = d++){
    ...
} // X

if((c++ = d++) != 0) {
    ...
}   // O

좋은 웹페이지 즐겨찾기