====== Code Conventions for the Java Programming Language ====== * description : 2 - File Names * author : 오션 * email : shlim@repia.com * lastupdate : 2022-04-13 ====== 자바 프로그래밍 언어를 위한 코드 규약 ====== ​===== 3. 파일 구조 ===== 파일은 빈 줄(blank lines)로 구분되어야 하는 섹션과 각각의 섹션을 식별하는 선택적인 주석으로 구성됩니다.\\ \\ 2000 라인 보다 더 긴 파일은 번거롭기 때문에 피해야 합니다.\\ \\ 올바른 형식의 Java 프로그램 예제는 "[[https://www.oracle.com/java/technologies/javase/codeconventions-codeexamples.html|Java 소스 파일 예제]]"를 참조하세요.\\ ===== 3.1 Java 소스 파일 ===== 각각의 Java 소스 파일에는 하나의 public 클래스 또는 interface가 포함됩니다. private 클래스 및 interface가 public 클래스와 연결되면, public 클래스와 동일한 소스 파일에 private 클래스 및 interface를 넣을 수 있습니다.\\ \\ Java 소스 파일은 순서는 아래와 같습니다.\\ \\ * 시작 주석 (Beginning comments) * Package 와 import 선언문 * 클래스와 interface 선언 ===== 3.1.1 시작 주석 (Beginning Comments) ===== 모든 소스 파일은 클래스 이름, 버전 정보, 날짜 및 저작권 게시를 나열하는 c-스타일 주석으로 시작해야 햡니다.\\ \\ /* * Classname * * Version information * * Date * * Copyright notice */ \\ ===== 3.1.2 Package와 import 선언문 ===== 대부분의 Java 소스 파일에서 주석이 없는 첫 번째 라인은 **''package''** 선언문입니다. 그 다음에 **''import''** 선언문이 이어질 수 있습니다. 예를 들어:\\ \\ package java.awt; import java.awt.peer.CanvasPeer; \\ ===== 3.1.3 Class와 Interface 선언문 ===== 다음 표에서는 표시되어야 하는 순서대로 class 또는 interface 선언 부분을 설명합니다. 주석이 포함된 예제는 "[[https://www.oracle.com/java/technologies/javase/codeconventions-codeexamples.html#182|Java 소스 파일 예제]]"를 참조하십시오.\\ \\ ^ ^ Part of Class / Interface Declaration ^ Notes ^ | 1 | Class / Interface 문서 주석 ( ''**%%/**...*/%%**'' ) | 이 주석에 포함되어야 하는 정보들은 "[[https://www.oracle.com/java/technologies/javase/codeconventions-comments.html#16838|Documentation Comments]]"를 참조하세요. | | 2 | **''class''** 또는 **''interface''** 선언문 | | | 3 | 필요시, class / interface 구현 주석 ( ''**%%/*...*/%%**'' ) | 이 주석에는 class / interface 문서 주석에 적합하지 않은 class 전체 또는 interface 전체 정보를 모두 포함해야 합니다. | | 4 | Class ( **''static''** ) 변수 | 맨 처음에 **''public''** class 변수, 그리고 **''protected''** 변수, 그 다음에 package 레벨[접근 제한자(access modifier)가 없는 경우] 변수, 그리고 **''private''** 변수 | | 5 | Instance 변수 | 맨 처음에 **''public''** 인스턴스 변수, 그리고 **''protected''** 변수, 그 다음에 package 레벨[접근 제한자(access modifier)가 없는 경우] 변수, 그리고 **''private''** 변수 | | 6 | Constructors | | | 7 | Methods | 이러한 메소드는 범위(scope)나 접근성(accessibility)이 아닌 기능별로 그룹화되어야 합니다. 예를 들어, private 클래스 메소드는 2 개의 public 인스턴스 메소드 사이에 있을 수 있습니다. 목표는 코드를 더 쉽게 읽고 이해할 수 있도록 하는 것입니다. | ==== Ref ==== [[https://www.oracle.com/java/technologies/javase/codeconventions-fileorganization.html|Code Conventions for the Java Programming Language 3 - File Organization]] {{tag> 오션, Code Conventions, File Organization}}