>Java >java지도 시간 >Java 컴파일 클래스에 \'Find$1.class\'와 같은 이름이 포함된 이유는 무엇입니까?

Java 컴파일 클래스에 \'Find$1.class\'와 같은 이름이 포함된 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 00:45:27990검색

Why do Java compiled classes contain names like

Java 컴파일 클래스에서 내부 클래스 표시

Java에서 애플리케이션을 JAR 파일로 내보낼 때 특정 클래스에 클래스 이름이 포함될 수 있습니다. 그 뒤에 달러 기호와 숫자(예: Find$1.class)가 옵니다. 이는 Java가 기본 클래스와 별도로 익명 내부 클래스를 포함한 내부 클래스를 컴파일하기 때문에 발생합니다.

다른 클래스 내에 정의된 내부 클래스는 캡슐화 및 코드 재사용성과 같은 객체 지향 프로그래밍 개념을 가능하게 합니다. 컴파일러에서 생성되며 해당 클래스 파일에는 다음과 같은 명명 규칙이 있습니다.

  • 이름이 지정된 내부 클래스: OuterClass$InnerClass.class
  • 익명 내부 클래스: OuterClass$1.class(여기서 1은 익명 클래스를 나타냄)

예를 들어 다음 코드에서:

<code class="java">public class OuterClass {
    public class InnerClass {
        // ...
    }

    public static void main(String[] args) {
        OuterClass.InnerClass inner = new InnerClass();
    }
}</code>

컴파일하면 다음 클래스 파일이 생성됩니다. :

  • OuterClass.class
  • OuterClass$InnerClass.class

클래스 파일 이름의 달러 기호는 외부와 내부를 구별하는 구분 기호 역할을 합니다. 수업. 내부 클래스가 지정된 외부 클래스에 속해 있음을 나타냅니다.

위 내용은 Java 컴파일 클래스에 \'Find$1.class\'와 같은 이름이 포함된 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.