◆ 普通的内部类为什么不能有static数据和static字段?◆ 如果想从外部类的非静态方法之外的任意位置创建某个内部类的对象,那么必须象在main()方法中那样,具体地指明这个对象的类型:
OuterClassName.InnerClassName?

解决方案 »

  1.   

    静态数据跟非静态数据在用法上的区别是:
    非静态数据:必须先new对象,然后用“对象名.变量名”的方式调用。
    静态数据:“类名.变量名”的方式调用。
    对于内部类,如果是静态的,可以这样调用“外部类名.内部类名.变量名”。
    如果不是静态的"外部类姓名.内部类名"这种调用方法就不可用了,即使你把内部类的变量定义为静太也没什么意义了,对吗?
      

  2.   

    创建某个内部类的对象
    TalkingColock colock = new TalkingColock();
    TalkingColock.TimerPrinter listener = colock.new TimerPrinter();
      

  3.   

    ◆ 如果定义一个内部类,并且希望它使用一个在其外部定义的对象,那么编译器会要求构造器参数引用是final的,为什么?
      

  4.   

    使用final,对内部类的局部变量进行初始化后不在进行修改。因此就能使得局部变量与在内部类内建立的拷贝保持一致。