可以有的,你只要在你内部类的定义上加一个static例如public class A{    static class B{
        static int C;
    }}

解决方案 »

  1.   

    liusoft(凤梨罐头): 请看清我的题目再回答好吗,谢谢!
      

  2.   

    基本同意大水点静态方法是放在static区里面的 而内部类不能超越其外部类的生命期 那么内部类中的静态方法则是无法得到调用的 也没有办法方到static区里面
      

  3.   

    因为静态的方法和变量是在程序运行之前就初始化了的,而内部的方法却不能在程序运行之前就运行。
    -----------------------------------------------------------------我认为不对吧,我的理解时:
    静态的方法和变量都生命周期就是该class的生命周期.例如运行 
    Util.copyFile(); 
    String path = Constants.UPLOAD; 没调用时,他们不会存在内存中.
    程序运行这个方法,内存中将初始化该class文件,并调用静态方法和静态变量
    一用完就该类回收,并将所占用的内存全部释放.
      

  4.   

    静态区应该是在外部类被调用的时候声明并定义的,当程序在引用到内部类必然将会收到外部类的一些限制,内部类的静态变量应声明在他外部类的静态区内。
    而java在初始化顶级类的时候可能没有分析这个外部类的非静态内部类的静态变量并进行定义,而后期调用时又不能更改顶级类的静态区,造成此时java在运行中发现了静态变量,但是在静态区无法找到这个静态地址了。
    所以编译的时候会提示这么作不可以,不知道对不对?
      

  5.   

    呵呵. 其实没有其它原因,就因为java规范是这样规定的.
      

  6.   

    内部类中的方法和变量如果为静态的(static)内部类表示嵌套类,嵌套类的声明为static的。嵌套类与普通内部类的区别是:
    1.无须宿主类的对象就能创建嵌套类的对象。
    2.不能在嵌套类的对象里面访问非static的宿主类对象。
    3.普通内部类的成员数据和方法只能到类的外围这一层,因此普通的内部类不能有static数据,static数据成员或嵌套类。
      

  7.   

    我认为不对吧,我的理解时:
    静态的方法和变量都生命周期就是该class的生命周期.例如运行 
    Util.copyFile(); 
    String path = Constants.UPLOAD; 没调用时,他们不会存在内存中.
    程序运行这个方法,内存中将初始化该class文件,并调用静态方法和静态变量
    一用完就该类回收,并将所占用的内存全部释放.------------------------------------------------------
    分清楚类和实例