문제

Java 클래스 이름에 유효한 문자는 무엇입니까?Java 클래스 이름을 관리하는 다른 규칙은 무엇입니까(예: Java 클래스 이름은 숫자로 시작할 수 없음)?

도움이 되었습니까?

해결책

대부분의 유니코드 문자를 포함하여 거의 모든 문자를 사용할 수 있습니다!정확한 정의는 다음과 같습니다. 섹션 3.8의 Java 언어 사양:식별자.

식별자 길이가 무제한인 시퀀스입니다. 자바 문자 그리고 자바 숫자, 그 중 첫 번째는 자바 문자. ...

문자와 숫자는 전체 유니코드 문자 집합에서 그려질 수 있습니다.이를 통해 프로그래머는 자신의 모국어로 작성된 프로그램에서 식별자를 사용할 수 있습니다.

식별자는 키워드(§3.9), 부울 리터럴(§3.10.3) 또는 null 리터럴(§3.10.7)과 동일한 철자(유니코드 문자 시퀀스)를 가질 수 없습니다. 그렇지 않으면 컴파일 시간 오류가 발생합니다.

그러나 참조 이 질문 그렇게 해야 할지 말지.

다른 팁

모든 프로그래밍 언어에는 사용할 수 있는 이름 종류에 대한 고유한 규칙과 규칙이 있으며 Java 프로그래밍 언어도 다르지 않습니다.변수 이름 지정 규칙과 규칙은 다음과 같이 요약할 수 있습니다.

  • 변수 이름은 대소문자를 구분합니다.변수 이름은 모든 법적 식별자(문자, 달러 기호 "$" 또는 밑줄 문자 "_"로 시작하는 무제한 길이의 유니코드 문자 및 숫자 시퀀스)일 수 있습니다.그러나 규칙은 항상 "$" 또는 "_"가 아닌 문자로 변수 이름을 시작하는 것입니다.또한 규칙에 따라 달러 기호 문자는 전혀 사용되지 않습니다.자동 생성된 이름에 달러 기호가 포함되는 상황이 있을 수 있지만 변수 이름에는 항상 달러 기호를 사용하지 않아야 합니다.밑줄 문자에도 비슷한 규칙이 있습니다.변수 이름을 "_"로 시작하는 것은 기술적으로 합법적이지만 이 방식은 권장되지 않습니다.공백은 허용되지 않습니다.

  • 후속 문자는 문자, 숫자, 달러 기호 또는 밑줄 문자일 수 있습니다.이 규칙에도 관례(및 상식)가 적용됩니다.변수 이름을 선택할 때 난해한 약어 대신 전체 단어를 사용하세요.이렇게 하면 코드를 더 쉽게 읽고 이해할 수 있습니다.대부분의 경우 코드를 자체적으로 문서화할 수도 있습니다.예를 들어, 케이던스, 속도, 기어라는 이름의 필드는 s, c, g와 같은 축약된 버전보다 훨씬 더 직관적입니다.또한 선택한 이름은 키워드나 예약어가 아니어야 한다는 점을 명심하세요.

  • 선택한 이름이 한 단어로만 구성된 경우 해당 단어의 철자를 모두 소문자로 입력하세요.두 개 이상의 단어로 구성된 경우 각 후속 단어의 첫 글자를 대문자로 표시합니다.gearRatio 및 currentGear라는 이름이 이 규칙의 대표적인 예입니다.변수가 다음과 같은 상수 값을 저장하는 경우 static final int NUM_GEARS = 6, 에서는 규칙이 약간 변경되어 모든 문자를 대문자로 표시하고 후속 단어를 밑줄 문자로 구분합니다.관례적으로 밑줄 문자는 다른 곳에서는 사용되지 않습니다.

에서 공식 Java 튜토리얼.

이전 답변에 더해 다음 사항에 주목할 가치가 있습니다.

  1. Java는 기호 이름에 모든 유니코드 통화 기호를 허용하므로 다음이 모두 작동합니다.

$ var1 £ var2 € var3

나는 통화 기호의 사용이 C/C++에서 유래했다고 생각합니다. 여기서 컴파일러에 의해 코드에 추가된 변수는 일반적으로 '$'로 시작됩니다.Java의 명백한 예는 관례적으로 'Outer$Inner.class' 형식을 갖는 내부 클래스의 '.class' 파일 이름입니다.

  1. 많은 C# 및 C++ 프로그래머는 인터페이스(C++의 순수 가상 클래스라고도 함) 앞에 'I'를 배치하는 규칙을 채택합니다.이는 Java에서는 필수가 아니며 수행되지도 않습니다. 왜냐하면 Implements 키워드를 사용하면 어떤 것이 인터페이스인지 매우 명확하게 알 수 있기 때문입니다.

비교하다:

클래스 직원 :공개 IPayable //C++

~와 함께

클래스 직원 :지불 가능 //C#

그리고

Employee 클래스는 Payable //Java를 구현합니다.

  1. 많은 프로젝트에서는 필드 이름 앞에 밑줄을 두는 규칙을 사용하여 지역 변수 및 매개변수와 쉽게 구별할 수 있습니다.

개인 이중 _급여;

아주 소수는 필드 이름 뒤에 밑줄을 넣습니다.

개인 이중 급여 _;

Jason Cohen이 이미 설명한 것처럼 Java 언어 사양은 섹션 3.8에서 법적 식별자가 무엇인지 정의합니다.

"식별자는 Java 문자와 Java 자리의 무제한 길이 시퀀스이며, 첫 번째는 Java Letter이어야합니다.[...] 'Java 문자'는 Character.isJavaIdentifierStart(int) 메소드가 true를 반환하는 문자입니다.'Java 문자 또는 숫자'는 Character.isJavaIdentifierPart(int) 메소드가 true를 반환하는 문자입니다.

두 번째 질문에 대한 답변이 되었기를 바랍니다.첫 번째 질문에 관해서;나는 교사와 (내가 기억할 수 있는 한) Java 컴파일러로부터 Java 클래스 이름은 대문자 A-Z로 시작하는 식별자여야 한다고 배웠지만 이에 대한 신뢰할 수 있는 소스를 찾을 수 없습니다.OpenJDK로 시도해 볼 때 소문자나 $ 기호로 클래스 이름을 시작할 때 경고가 없습니다.그러나 $-기호를 사용할 때 bash 쉘에서 컴파일하는 경우 이스케이프해야 합니다.

유효한 통화 문자는 Java의 식별자에 적합하다는 bosnic의 답변을 추가하고 싶습니다.this€is는 €this와 €도 마찬가지로 법적 식별자입니다.하지만 그/그녀의 답변을 어떻게 편집해야 할지 알 수 없어서 부득이하게 이런 사소한 추가 사항을 게시하게 되었습니다.

Java 클래스 이름을 관리하는 다른 규칙은 무엇입니까(예: Java 클래스 이름은 숫자로 시작할 수 없음)?

  • Java 클래스 이름은 일반적으로 대문자로 시작됩니다.
  • Java 클래스 이름은 숫자로 시작할 수 없습니다.
  • "MyClassName"과 같이 클래스 이름에 여러 단어가 있는 경우 각 단어는 대문자로 시작해야 합니다.예: "MyClassName". 이 명명 규칙은 다음을 기반으로 합니다. 카멜 케이스 유형.

클래스 이름은 UpperCamelCase의 명사여야 하며 모든 단어의 첫 글자는 대문자여야 합니다.전체 단어를 사용하십시오. 두문자어와 약어를 사용하지 마십시오(URL이나 HTML과 같은 긴 형식보다 약어가 훨씬 더 널리 사용되지 않는 한).명명 규칙은 여기에서 읽을 수 있습니다.

http://www.oracle.com/technetwork/java/codeconventions-135099.html

식별자는 클래스 이름, 메서드 이름, 변수 이름에 사용됩니다.식별자는 대문자와 소문자, 숫자 또는 밑줄과 달러 기호 문자로 구성된 설명 시퀀스일 수 있습니다.숫자 리터럴과 혼동되지 않도록 숫자로 시작해서는 안 됩니다.다시 말하지만 Java는 대소문자를 구분하므로 VALUE는 Value와 다른 식별자입니다.유효한 식별자의 몇 가지 예는 다음과 같습니다.

평균 온도, 개수 a4, $test, this_is_ok

잘못된 변수 이름은 다음과 같습니다.

2개, 고온, Not/ok

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top