Today, I saw several concepts in the Code: internal class, local class, member class, static member class, and anonymous internal class. I felt confused in an instant. Below is a small example to illustrate them:
Public class classtest {public static void main (string [] ARGs) {classtest son = new classtest (); // test the Anonymous class son. testanonymous (New anonymousclass () {@ override public void test () {system. out. println ("1->" + this. getclass (). ismemberclass (); system. out. println ("1->" + this. getclass (). isanonymousclass (); system. out. println ("1->" + this. getclass (). islocalclass (); system. out. println ("-------------------------------------") ;}}); // test the member class son. testmember (); // test the static member class new staticmemberclass (); // test the local class localclass {public localclass () {system. out. println ("4->" + this. getclass (). ismemberclass (); system. out. println ("4->" + this. getclass (). isanonymousclass (); system. out. println ("4->" + this. getclass (). islocalclass (); system. out. println ("-------------------------------------") ;}} new localclass () ;}private void testanonymous (anonymousclass inner) {inner. test ();} private void testmember () {New memberclass ();}/*** interface, used to test the internal class * @ author xinghzhang **/interface anonymousclass {public void test ();} /*** static member class ** @ author xinghzhang **/static class staticmemberclass {public staticmemberclass () {system. out. println ("3->" + this. getclass (). ismemberclass (); system. out. println ("3->" + this. getclass (). isanonymousclass (); system. out. println ("3->" + this. getclass (). islocalclass (); system. out. println ("-----------------------------------");}/*** member class ** @ author xinghzhang **/class memberclass {public memberclass () {system. out. println ("2->" + this. getclass (). ismemberclass (); system. out. println ("2->" + this. getclass (). isanonymousclass (); system. out. println ("2->" + this. getclass (). islocalclass (); system. out. println ("---------------------------------------");}}}