对内部类及外部类的一些测试体会

    技术2022-05-20  67

    package j2se.basicKnowledge.exercises; public class InnerClassTest {     static int i=10;     int i1 = 1;         static class StaticInnerClass{         int staticInnerVar = 1; //‘静态内部类’中可以有‘非’静态的成员         static int staticInnerVar1=9;                 public void staticInnermethod(){             i++;             //i1++;//k为非静态成员,在静态内部类中不能直接用this.i1使用,故此处会报错!但可以像下面那样来使用。             InnerClassTest is = new InnerClassTest();             is.i1++;         }            }         class NotStaticInnerClass{         int notStaticInnerVar=2;         //static int notStaticInnerVar1=3;  //非静态内部类中'不能'有'静态成员',故这里会有错!                 public void notStaticInnerMethod(){             /*在‘非静态内部类’的‘非静态方法’中可以‘直接使用’外部类的‘非静态成员’和‘静态成员’*/             i++;             i1++;          }     }         //非静态方法中建立非静态内部类和静态内部类实例的步骤:一样的,都是直接new他们的实例对象,而‘不用’先new外部类的对象     public void notStaticMethod(){                 //建立静态内部类实例         StaticInnerClass ic = new StaticInnerClass();                 //建立非静态内部类实例         NotStaticInnerClass nic = new NotStaticInnerClass();     }         //静态方法中建立非静态内部类和静态内部类实例的步骤:有区别的     public static void main(String [] args){                 //建立非静态内部类实例:先new外部类实例,再用“外部类名.内部类名 = 外部类实例.new 内部类()”的方法         InnerClassTest ict = new InnerClassTest();         InnerClassTest.NotStaticInnerClass nsic = ict.new NotStaticInnerClass();                 //建立静态内部类实例:直接’外部类名.静态内部类名 var = new 外部类名.静态内部类名()‘的方式            InnerClassTest.StaticInnerClass sic = new InnerClassTest.StaticInnerClass();                 //引用静态内部类的静态成员方式:         int l = InnerClassTest.StaticInnerClass.staticInnerVar1;                 //引用静态内部类的非静态静态成员方式:         int l1 = sic.staticInnerVar;     } }

     

     

    package j2se.basicKnowledge.exercises; /*静态内部类在无论是在static方法中还是在非static的方法中都可以直接new自己的实例对象;而不用先new外部类*/ public class OutClass {     private static class InterClass {         public InterClass() {             System.out.println("InterClass Create");         }     }     public OutClass() {         InterClass ic = new InterClass();         System.out.println("OuterClass Create");     }     public void aa() {         InterClass ic = new InterClass();     }         public static void main(String[] args) {         InterClass ic = new InterClass();         OutClass oc = new OutClass();         oc.aa();     } }

     


    最新回复(0)