Last active
December 21, 2015 15:28
-
-
Save akirad/6326469 to your computer and use it in GitHub Desktop.
Java inner class test.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package innerClassTest; | |
public class ExternalClass { | |
String str = "external"; | |
class InnerClass { | |
String str = "inner"; | |
} | |
InnerClass createInner(){ | |
return new InnerClass(); | |
} | |
static class InnerStaticClass { | |
String str = "innerStatic"; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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