A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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






5 个回复

倒序浏览
回复 使用道具 举报
KyneZhk 发表于 2017-1-14 22:37
怎么不行了 ,你写错了吧
[mw_shl_code=applescript,true]public class Demo {
        int num1 = 10;

你这个案例已经是创建了对象在调用的非静态方法,跟楼主的例子是一个概念。
回复 使用道具 举报
所有的静态方法、静态成员变量、静态代码块是类加载的时候被加载的;而非静态成员是属于对象层级的,如果对象未创建,你要访问对象中的成员,当然是不符合逻辑的了。
回复 使用道具 举报
回复 使用道具 举报
不行,因为静态方法只能访问静态变量与方法。静态方法与变量随着类的加载而加载,而此时对象还没创建,而静态方法若可以访问非静态成员,此时非静态的方法和变量还没有加载。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马