Java Reference
In-Depth Information
a member interface and a member enum are implicitly static and therefore they cannot be declared inside an
inner class.
Tip
Generated Class Files for Inner Classes
Each inner class is compiled into a separate class file. The names of the generated class files follow a naming
convention. The class file name format for a member inner class and a static inner class is as follows:
<outer-class-name>$<member-or-static-inner-class-name>
The format for the class file name for a local inner class is as follows:
<outer-class-name>$<a-number><local-inner-class-name>
The format for the class file name for an anonymous class is as follows:
<outer-class-name>$<a-number>
<a-number> in a class file name is a number that is generated sequentially starting from 1 to avoid any name
conflicts. The following nine class files, one for the top-level and eight for inner classes, are generated when you
compile the source code in Listing 2-22:
InnerClassFile.class
InnerClassFile$MemberInnerClass.class
InnerClassFile$StaticInnerClass.class
InnerClassFile$1$LocalInnerClass.class
InnerClassFile$1$LocalInnerClass$LocalInnerClass2.class
InnerClassFile$1$AnotherLocalInnerClass.class
InnerClassFile$1.class
InnerClassFile$2$AnotherLocalInnerClass.class
InnerClassFile$1$TestLocalClass.class
Listing 2-22. An Example for Generating File Names for Inner Classes
// InnerClassFile.java
package com.jdojo.innerclasses;
public class InnerClassFile {
public class MemberInnerClass {
}
public static class StaticInnerClass {
}
public void testMethod1() {
// A local class
class LocalInnerClass {
// A local class
class LocalInnerClass2 {
}
}
 
 
Search WWH ::




Custom Search