Skip to content

Instantly share code, notes, and snippets.

@akirad
Last active December 21, 2015 15:28
Show Gist options
  • Save akirad/6326469 to your computer and use it in GitHub Desktop.
Save akirad/6326469 to your computer and use it in GitHub Desktop.
Java inner class test.
package innerClassTest;
public class ExternalClass {
String str = "external";
class InnerClass {
String str = "inner";
}
InnerClass createInner(){
return new InnerClass();
}
static class InnerStaticClass {
String str = "innerStatic";
}
}
package innerClassTest;
import innerClassTest.ExternalClass.InnerClass;
import innerClassTest.ExternalClass.InnerStaticClass;
public class Main {
public static void main(String[] args) {
ExternalClass external = new ExternalClass();
System.out.println(external.str);
// ----------------------------------------------------------------------
// It is necessary to create an external instance to access an inner class.
// When an instance of an external class is made, an instance of an inner class is NOT made automatically.
// ----------------------------------------------------------------------
InnerClass inner = external.createInner();
System.out.println(inner.str);
// A static inner class is same as a top level (external) class.
InnerStaticClass innerStatic = new InnerStaticClass();
System.out.println(innerStatic.str);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment