黑马程序员技术交流社区

标题: 静态方法中包含非静态成员的问题 [打印本页]

作者: a469517790    时间: 2017-1-13 15:06
标题: 静态方法中包含非静态成员的问题

老师说,静态的成员方法不能访问非静态的,是因为静态对于对象,优先存在,
            如果创建了对象,静态方法去访问非静态的成员,行不行?实践操作显示不行,为什么呢?







作者: 袁志娜    时间: 2017-1-13 22:54

作者: guyouzhong    时间: 2017-1-15 09:46
KyneZhk 发表于 2017-1-14 22:37
怎么不行了 ,你写错了吧
[mw_shl_code=applescript,true]public class Demo {
        int num1 = 10;

你这个案例已经是创建了对象在调用的非静态方法,跟楼主的例子是一个概念。
作者: guyouzhong    时间: 2017-1-15 09:50
所有的静态方法、静态成员变量、静态代码块是类加载的时候被加载的;而非静态成员是属于对象层级的,如果对象未创建,你要访问对象中的成员,当然是不符合逻辑的了。
作者: jiangyu    时间: 2017-1-15 13:52
!!!!!!!!!

作者: gczsjj    时间: 2017-1-16 22:49
不行,因为静态方法只能访问静态变量与方法。静态方法与变量随着类的加载而加载,而此时对象还没创建,而静态方法若可以访问非静态成员,此时非静态的方法和变量还没有加载。





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