黑马程序员技术交流社区

标题: 静态内部类和非静态内部类的区别 [打印本页]

作者: wwwjaycn0717    时间: 2016-7-29 01:45
标题: 静态内部类和非静态内部类的区别
1、静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。
2、非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。
3、静态内部类可以有静态成员(方法,属性),而非静态内部类则不能有静态成员(方法,属性)。
4、静态内部类只能够访问外部类的静态成员和静态方法,而非静态内部类则可以访问外部类的所有成员(方法,属性)。
5、实例化一个非静态的内部类的方法:
    a.先生成一个外部类对象实例
    OutClassTest oc1 = new OutClassTest();
    b.通过外部类的对象实例生成内部类对象
    OutClassTest.InnerClass no_static_inner = oc1.new InnerClass();
6、实例化一个静态内部类的方法:
    a.不依赖于外部类的实例,直接实例化内部类对象
    OutClassTest.InnerStaticClass inner = new OutClassTest.InnerStaticClass();
7、调用内部静态类的方法或静态变量,通过类名直接调用
    OutClassTest.InnerStaticClass.static_value
    OutClassTest.InnerStaticClass.getMessage()

作者: 威威是超人    时间: 2016-9-13 00:15
那个 想请问下,为何非静态内部类不能有静态成员呢。




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