Development Tip

Java 클래스 이름의 유효한 문자

yourdevel 2020. 11. 8. 11:22
반응형

Java 클래스 이름의 유효한 문자


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


대부분의 유니 코드 문자를 포함하여 거의 모든 문자를 가질 수 있습니다! 정확한 정의는 섹션 3.8 : 식별자 아래의 Java 언어 사양에 있습니다.

식별자 의 무제한 길이의 순서입니다 자바 문자자바 자리 해야 처음있는, 자바 문자 . ...

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

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

그러나 그렇게해야하는지 여부 이 질문참조하십시오 .


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

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

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

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

에서 공식 자바 튜토리얼 .


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

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

$ var1 £ var2 € var3

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

  1. 많은 C # 및 C ++ 프로그래머는 인터페이스 앞에 'I'를 배치하는 규칙을 채택합니다 (C ++의 순수 가상 클래스라고도 함). 이는 구현 키워드가 무언가가 인터페이스 일 때 매우 명확하게 해주기 때문에 Java에서는 필요하지 않으므로 수행되지 않습니다.

비교:

Employee 클래스 : 공개 IPayable // C ++

Employee 클래스 : IPayable // C #

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

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

개인 이중 급여;

소수는 필드 이름 뒤에 밑줄을 배치합니다.

개인 이중 급여 _;


Jason Cohen이 이미 언급했듯이 Java 언어 사양은 섹션 3.8에서 법적 식별자가 무엇인지 정의합니다.

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

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


유효한 통화 문자가 Java의 식별자에 합법적이라는 bosnic의 답변에 추가하고 싶습니다. 이것은 유효한 식별자이며 € this와 €도 마찬가지입니다. 그러나 나는 그의 대답을 편집하는 방법을 알 수 없으므로이 사소한 추가 사항을 게시해야합니다.


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

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

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

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


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

AvgTemp, count a4, $ test, this_is_ok

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

2 카운트, 고온, Not / ok

참고 URL : https://stackoverflow.com/questions/65475/valid-characters-in-a-java-class-name

반응형