因为CLASS B也是静态的,若STATE非静态,则B.STATE会报错

解决方案 »

  1.   

    non-static inner class can access the non-static outer class field members
    static inner class don't need to do that, and all outer class instances share the same static inner class
      

  2.   

    对于问题1:调用非staic函数的前提是必须对包含该函数的类进行实例化,如果不实例化,
    是绝对不行的。而你没有做实例化的工作,所以,必须(1)声明为staic。因为程序先声明了CLASS B是 静态的,
    对于这个静态方法,同样可以不用new就可以进行访问,但这个静态方法里面不能直接
    访问这个类里面的非静态变量或者方法,也就是说(2)STATE 必须也得声明为静
    态的。楼主   OK?对于问题2:static 函数不用实例化就可以直接调用,很省事、简单!
    这个就是这样写的好处!!!OK???
      

  3.   


    现在我想知道把class申明为static通常起什么作用?
      

  4.   

    这是java中最基本也是最令人迷惑的地方-----一切staic的函数和变量,都先于类之前初
    始化或执行
      

  5.   

    在说static(静态)的作用:它可以满足以下两个情况中的特殊需求:一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对
    象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就
    是说,即使没有创建对象,也需要一个能调用的方法。
    关于static(静态),THINKING IN JAVA里讲得很清楚透彻,为什么不去看看那???OK???:0
      

  6.   

    不错,感觉清楚了很多!!谢谢
    翻了一下tij,差不多就是这样了