码迷,mamicode.com
首页 > 编程语言 > 详细

Java的外部类和内部类+静态变量和非静态变量的组合关系

时间:2016-07-02 17:16:16      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

看的李刚《疯狂java讲义》,里面讲内部类的地方感觉有点散而且不全,看完之后还是不十分清楚到底怎么用,于是自己写了个程序测试了一下。看如下代码,即可知道外部类和内部类+静态成员和非静态成员之间的相互调用规则。

技术分享

技术分享

 运行结果如下:

技术分享

总结如下:

 

注意: 当如下出现报错:“无法从静态上下文中引用非静态时”,问题在于非静态方法或者非静态变量所属的类可能没有被实列化。因为要使用非静态方法,必须实例化它所属的类。

例如:将第40行代码改成inter2.StaticInter();

技术分享

编译:

 技术分享

原因是StaticInter()虽然是属于静态内部类,但它自身是非静态方法(实例方法),不能通过内部类类名.非静态方法来调用该方法。

正确做法是将非静态方法所属的类(不管所属类是静态类还是非静态内部类)实例化,即创建所属类的对象,然后再调用该非静态方法。

 

Java的外部类和内部类+静态变量和非静态变量的组合关系

标签:

原文地址:http://www.cnblogs.com/TTTTT/p/5635619.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!