java 매트랩 - 변수 이름에 $의 의미는 무엇입니까?




1 Answers

$ 는 특정 이름을 꾸미기 위해 컴파일러에서 내부적으로 사용됩니다. Wikipedia 는 다음 예제를 제공합니다 .

public class foo {
    class bar {
        public int x;
    }

    public void zark () {
        Object f = new Object () {
            public String toString() {
                return "hello";
            }
        };
    }
}

이 프로그램을 컴파일하면 세 개의 .class 파일이 생성됩니다.

  • main (외부) 클래스 foo 포함하는 foo.class
  • foo$bar.class , 명명 된 내부 클래스 foo.bar
  • foo$1.class , 익명 내부 클래스 포함 ( foo.zark 메소드에 로컬)

이러한 클래스 이름은 모두 유효합니다 ( $ 기호는 JVM 스펙에서 허용됩니다).

비슷하게 javac 은 자동으로 생성 된 변수 이름 에서 $ 를 사용 합니다 . 예를 this$0 등은 내부 클래스에서 외부 클래스에 대한 암시적인 참조에 사용됩니다.

마지막으로 JLS는 다음을 권장합니다 .

$ 문자는 기계적으로 생성 된 소스 코드에서만 사용되거나 레거시 시스템에서 기존 이름에 액세스하는 경우는 드물게 사용되어야합니다.

제목 그래프

최근에 나는 기호 $가 Java 변수 이름에 허용되지만 특별한 의미가 있다는 것을 읽었습니다. 불행히도이 특별한 의미가 무엇인지 언급하지 않았습니다.

그러므로 나는 여기서 물어 본다 : Java의 변수 이름에서 $의 특별한 의미는 무엇인가?

정확한 견적은 다음과 같습니다.

Java : 문제 해결 및 프로그래밍 소개

월터 사치 (Walter Savitch)

Java는 달러 기호 기호 $를 식별자에 표시 할 수 있지만 이러한 식별자는 특별한 의미가 있으므로 식별자에 $ 기호를 사용하면 안됩니다.




Related


Tags

java