main
"메인"메소드를 선언하는 식별자로 사용되는 동안 식별자로 어떻게 사용할 수 없습니까?
그런 고전 관용구 :
public class Foo{
public static void main(String[] args){
}
}
main
는 키워드가 아니며 명백한 레트로 호환성을 이유로 Java에서는 키워드가 아닐 수 있습니다.
질문에 main
대해 좋은 식별자입니까?
첫째 : 컴파일러에 유효하다고해서 반드시 좋은 것은 아닙니다.
예를 들어 java1234
제안 된 옵션도 유효한 식별자이지만 실제로 피해야합니다.
main
매우 특별하고 중요한 의미를 지니고 있습니다. java
명령 행에서 실행되는 클래스 및 jar의 시작점 메소드로 사용됩니다 .
사용 main
에 의해 사용되는 기준을 채우지 않는 방법 이름을 java
명령 행은 변수 이름으로 사용하거나 클래스 이름은 의미를 만들 수있는 동안 단지 오해의 소지가 될 것이다.
예를 들어 응용 프로그램의 진입 점을 나타내는 클래스를 응용 프로그램의 클래스로 정의하는 Main
것은 허용 가능하므로 다음과 같이 변수 이름으로도 사용하십시오.
public class Main {
public static void main(String args[]){
Main main = new Main();
// ...
}
}
일반적으로 Java에서 여러 문자 또는 "단어"는 컴파일러의 유효한 식별자로 간주되지만 클라이언트 코드에서 사용하지 않는 것이 좋습니다 (그러나 생성 된 코드는 다음과 같이 할 수 있음). 또는 오해의 소지가 있습니다.
예를 들어 이것은 컴파일러에 유효 할 수 있습니다.
public class Object { // 1
public void foo() {
...
}
}
public class BadChosenIdentifier {
public static void main() { // 2
new BadChosenIdentifier().toString(new Object());
}
public void toString(Object java1234) { // 3, 4
String _result$ = java1234 + " -> to avoid"; // 4
System.out.println(_result$);
}
}
그러나 우리는 원하지 않습니다 :
- 이름을
Object
java.lang
(1)에 정의 된대로 클래스 합니다 .
- 방법의 이름을 지정
main()
java
명령 행에서 사용할 기준을 채우지 않은 경우 (2).
Object.toString()
방법 (3) 을 과부하 .
- 우리와 변수 이름을 지정합니다
_
, $
또는 공유 이름 지정 규칙 (4)에 가서 어떤 놀라운 일 / unmeaningful 문자.