문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
프로그램:java:syntax [2022/01/01 00:06] clayeryan@gmail.com [Constants] |
프로그램:java:syntax [2023/07/13 17:29] (현재) clayeryan@gmail.com ↷ 문서가 programmer:java:syntax에서 프로그램:java:syntax(으)로 이동되었습니다 |
||
---|---|---|---|
줄 133: | 줄 133: | ||
파일은 빈 줄이나 다른 구역임을 나타내주는 주석으로 나누어지는 여러 구역(section)들로 구성되어 있다.\\ | 파일은 빈 줄이나 다른 구역임을 나타내주는 주석으로 나누어지는 여러 구역(section)들로 구성되어 있다.\\ | ||
2,000 라인을 넘는 파일은 이해하기가 쉽지 않기 때문에 될 수 있으면 피해야 한다.\\ | 2,000 라인을 넘는 파일은 이해하기가 쉽지 않기 때문에 될 수 있으면 피해야 한다.\\ | ||
- | 적절하게 구성된 자바 프로그램의 예제는 아래 | + | 적절하게 구성된 자바 프로그램의 예제는 아래 |
=== 자바 소스 파일 === | === 자바 소스 파일 === | ||
줄 175: | 줄 175: | ||
^순서^클래스/ | ^순서^클래스/ | ||
- | |1|문서화 주석|(/ | + | |1|문서화 주석|(/ |
|2|클래스/ | |2|클래스/ | ||
|3|구현 주석|(/* ... */) 이 주석은 클래스/ | |3|구현 주석|(/* ... */) 이 주석은 클래스/ | ||
줄 284: | 줄 284: | ||
*문서화 주석 | *문서화 주석 | ||
- | 구현 주석은 /* ... */ 과 < | + | 구현 주석은 /* ... */ 과 < |
문서화 주석은 단지 자바에서만 사용되며, | 문서화 주석은 단지 자바에서만 사용되며, | ||
줄 299: | 줄 299: | ||
프로그램은 다음과 같은 4가지 형식의 구현 주석을 포함할 수 있다. | 프로그램은 다음과 같은 4가지 형식의 구현 주석을 포함할 수 있다. | ||
- | - **블록(Block) 주석** | + | - 블록(Block) 주석 |
- | - ** 한 줄(Single-Line) 주석** | + | - 한 줄(Single-Line) 주석 |
- | - **꼬리(Trailing) 주석** | + | - 꼬리(Trailing) 주석 |
- | - **줄 끝(End-Of-Line) 주석** | + | - 줄 끝(End-Of-Line) 주석 |
==블록(Block) 주석== | ==블록(Block) 주석== | ||
줄 370: | 줄 370: | ||
</ | </ | ||
=== 문서화(Documentation) 주석 === | === 문서화(Documentation) 주석 === | ||
- | * 여기에 나오는 주석들은 아래 | + | * 여기에 나오는 주석들은 아래 |
문서화 주석은 다음 5가지를 설명한다. | 문서화 주석은 다음 5가지를 설명한다. | ||
줄 763: | 줄 763: | ||
=== 인스턴스 변수와 클래스 변수를 외부에 노출하지 말고 대신 접근을 제공 === | === 인스턴스 변수와 클래스 변수를 외부에 노출하지 말고 대신 접근을 제공 === | ||
+ | 인스턴스 변수 또는 클래스 변수를 합당한 이유없이 public으로 선언하지 말자. 인스턴스 변수들은 명시적으로 선언될 필요가 없는 경우가 많다. | ||
+ | |||
+ | 인스턴스 변수가 public으로 선언되는 것이 적절한 경우는 클래스 자체가 어떤 동작(behavior)을 가지지 않는 데이터 구조일(data structure) 경우이다. 다시 말해서 만약 class 대신 struct를 사용해야 하는 경우라면(만약 Java가 struct를 지원한다면) class의 인스턴스 변수들을 public으로 선언하는 것이 적합하다. | ||
=== 클래스 변수와 클래스 메서드는 클래스 이름을 사용하여 호출 === | === 클래스 변수와 클래스 메서드는 클래스 이름을 사용하여 호출 === | ||
+ | |||
+ | 클래스(static) 변수 또는 클래스 메서드를 호출하기 위해서 객체를 사용하는 것을 피해야 한다. 대신에 클래스 이름을 사용해라 | ||
+ | |||
+ | <code java> | ||
+ | classMethod(); | ||
+ | AClass.classMethod(); | ||
+ | anObject.classMethod(); | ||
+ | </ | ||
=== 숫자는 바로 사용하지 않고 선언해서 변수 이름으로 접근 === | === 숫자는 바로 사용하지 않고 선언해서 변수 이름으로 접근 === | ||
+ | |||
+ | 숫자 상수는 카운트 값으로 for 루프에 나타나는 -1, 0, 1을 제외하고는 숫자 자체를 코드에 사용하지 않는다. | ||
+ | |||
=== 변수에 값을 할당할 때 주의할 것들 === | === 변수에 값을 할당할 때 주의할 것들 === | ||
+ | 하나의 문(statement)에서 같은 값을 여러 개의 변수들에 할당하지 말자(이렇게 하면 읽기가 어렵게 된다) | ||
+ | |||
+ | <code java> | ||
+ | fooBar.fChar = barFoo.lchar = ' | ||
+ | </ | ||
+ | |||
+ | 비교 연산자(equality operator: ==)와 혼동되기 쉬운 곳에 할당 연산자(assignment operator: =)를 사용하지 말자 | ||
+ | |||
+ | <code java> | ||
+ | // 이렇게 사용하지 말자 (자바가 허용하지 않음) | ||
+ | if (c++ = d++) { | ||
+ | ... | ||
+ | } | ||
+ | |||
+ | // 다음과 같이 써야 한다 | ||
+ | if ((c++ = d++) != 0) { | ||
+ | ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 실행시 성능 향상을 위해서 할당문(assignment statement)안에 또 다른 할당문을 사용하지 말자 | ||
+ | |||
+ | <code java> | ||
+ | // 이렇게 사용하지 말자 | ||
+ | d = (a = b + c) + r; | ||
+ | |||
+ | // 다음과 같이 써야 한다 | ||
+ | a = b + c; | ||
+ | d = a + r; | ||
+ | </ | ||
=== 그 외 신경써야 할 것들 === | === 그 외 신경써야 할 것들 === | ||
== 괄호 == | == 괄호 == | ||
+ | 연산자 우선순위 문제를 피하기 위해서 복합 연산자를 포함하는 경우에는 자유롭게 괄호를 사용하는 것이 좋은 생각이다(작성자는 연산자 우선 순위를 확실하게 알고 있다고 할지라도, | ||
+ | |||
+ | <code java> | ||
+ | if (a == b && c == d) // 이렇게 사용하지 말자 | ||
+ | if ((a == b) && (c == d)) // 이렇게 사용하자 | ||
+ | </ | ||
== 반환 값 == | == 반환 값 == | ||
+ | |||
+ | 프로그램의 구조와 목적이 일치해야 한다. | ||
+ | |||
+ | <code java> | ||
+ | // 이렇게 사용하지 말자 | ||
+ | if (booleanExpression) { | ||
+ | return true; | ||
+ | } else { | ||
+ | return false; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | // 다음과 같이 써야 한다 | ||
+ | return booleanExpression; | ||
+ | // 이렇게 사용하지 말자 | ||
+ | if (condition) { | ||
+ | return x; | ||
+ | } | ||
+ | return y; | ||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | // 다음과 같이 써야 한다 | ||
+ | return (condition ? x : y); | ||
+ | </ | ||
== 조건 연산자 '?' | == 조건 연산자 '?' | ||
삼항 연산자(ternary operator - ?:) 에서 ? 이전에 이항 연산자(binary operator)를 포함하는 식(expression)이 있는 경우에는, | 삼항 연산자(ternary operator - ?:) 에서 ? 이전에 이항 연산자(binary operator)를 포함하는 식(expression)이 있는 경우에는, | ||
+ | |||
< | < | ||