黑马程序员技术交流社区

标题: 为什么静态内部类不能定义静态成员? [打印本页]

作者: ☆枫の云    时间: 2014-5-11 21:18
标题: 为什么静态内部类不能定义静态成员?
本帖最后由 ☆枫の云 于 2014-5-13 09:51 编辑

如题,想了半天,也百度了不少资料,还是没懂,有没有大神来个简单易懂的说法{:2_32:}
作者: 钟成军    时间: 2014-5-11 21:49
内部类就是在一个类的内部定义的类,内部类中不能定义静态成员,因为静态成员不是对象的特性,只是为了找一个容身之处,所以需要放到一个类中而已,这么一点小事,你还要把它放到类内部的一个类中,过分了啊!提供内部类,不是为让你干这种事情,无聊,不让你干。
作者: 钟成军    时间: 2014-5-11 21:51
钟成军 发表于 2014-5-11 21:49
内部类就是在一个类的内部定义的类,内部类中不能定义静态成员,因为静态成员不是对象的特性,只是为了找一 ...

这是张孝祥老师的解释
作者: ☆枫の云    时间: 2014-5-12 10:55
钟成军 发表于 2014-5-11 21:51
这是张孝祥老师的解释

张老师,果然霸气{:2_34:}
作者: 菠萝包丶    时间: 2014-5-12 12:08
如来是这样啊
作者: 张志民    时间: 2014-5-13 22:58
静态内部类不是可以定义静态成员吗,如果一个内部类的成员是静态的,那么内部类也要定义成static,静态内部类相当于一个外部类
作者: 136616244    时间: 2014-5-14 22:55
静态方法是不需要创建对象就可以直接用类名调用的,而静态内部类定义静态方法需要创建静态内部类的对象,所以定义静态方法没有意义!
class Out{
     static class Inner{
           static method(){};
     }
}
如果需要调用method方法就需要创建对象
Out.Inner in = new  Inner();
in.method();
只是创建静态内部类的时候不需要创建外部类对象而已,静态内部类还是需要创建对象的,所以定义静态方法没有意义




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2