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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luxinyu 中级黑马   /  2015-5-29 00:16  /  492 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在静态方法里可以访问非静态变量吗?

8 个回复

倒序浏览
http://zhidao.baidu.com/link?url=skUvz71Dtv5jSO1N-IfZx6WiaPdN4HJvN6en3beNoYSz4xgtnT7EFjgLeD9BP1g0FAMI_GKsZkkDNkgoTGMVX1iO3cPandq2tJvR8Sw6k0S这个链接 可以看一下,祝你学习顺利
回复 使用道具 举报
不可以,因为使用静态方法不需要创建对象,非静态变量随着对象创建而存在,使用方法访问变量的时候变量还不在。所以不行。静态只能访问静态,非静态能访问静态和非静态。
回复 使用道具 举报
不可以,因为静态方法不需要创建对象,使用静态方法时,并没有对象创建,而非静态的变量需要创建对象才存在
回复 使用道具 举报
不可以静态方法只能访问静态成员。
回复 使用道具 举报
不可以,初始化先后顺序不一样
回复 使用道具 举报
静态函数要注意的细节:
1. 非静态的函数只能使用对象调用,不能使用类名调用。
2. 静态函数可以直接访问静态的成员,但是不能直接访问非静态的成员。
        原因:静态函数可以使用类名调用,而这时候对象可能还没有存在内存中,这时候非静态的数据也就不存在内存中。
3. 非静态函数可以直接访问静态以及非静态的成员。
        原因:非静态函数必须要由对象调用,如果对象存在了,静态数据以及非静态数据早就存在内存中了。
4. 静态函数不能出现this以及super关键字。
        原因:因为静态函数可以使用类名直接调用,而这时候可能还没有对象存在,this又要代表当前对象。
回复 使用道具 举报
不可以,因为产生的顺序有先后之分
回复 使用道具 举报
不可以,静态方法是随着类的加载而加载。非静态变量是在类的实例化时才创建的。所以说在静态方法中使用一个不存在的变量,是不可行的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马