黑马程序员技术交流社区
标题:
静态方法问题
[打印本页]
作者:
luxinyu
时间:
2015-5-29 00:16
标题:
静态方法问题
在静态方法里可以访问非静态变量吗?
作者:
张清华
时间:
2015-5-29 00:25
http://zhidao.baidu.com/link?url=skUvz71Dtv5jSO1N-IfZx6WiaPdN4HJvN6en3beNoYSz4xgtnT7EFjgLeD9BP1g0FAMI_GKsZkkDNkgoTGMVX1iO3cPandq2tJvR8Sw6k0S这个链接 可以看一下,祝你学习顺利
作者:
林RM
时间:
2015-5-29 00:28
不可以,因为使用静态方法不需要创建对象,非静态变量随着对象创建而存在,使用方法访问变量的时候变量还不在。所以不行。静态只能访问静态,非静态能访问静态和非静态。
作者:
谢晓明
时间:
2015-5-29 00:33
不可以,因为静态方法不需要创建对象,使用静态方法时,并没有对象创建,而非静态的变量需要创建对象才存在
作者:
wangkai
时间:
2015-5-29 00:36
不可以静态方法只能访问静态成员。
作者:
a96339023
时间:
2015-5-29 01:48
不可以,初始化先后顺序不一样
作者:
bin2015
时间:
2015-5-29 10:02
静态函数要注意的细节:
1. 非静态的函数只能使用对象调用,不能使用类名调用。
2. 静态函数可以直接访问静态的成员,但是不能直接访问非静态的成员。
原因:静态函数可以使用类名调用,而这时候对象可能还没有存在内存中,这时候非静态的数据也就不存在内存中。
3. 非静态函数可以直接访问静态以及非静态的成员。
原因:非静态函数必须要由对象调用,如果对象存在了,静态数据以及非静态数据早就存在内存中了。
4. 静态函数不能出现this以及super关键字。
原因:因为静态函数可以使用类名直接调用,而这时候可能还没有对象存在,this又要代表当前对象。
作者:
姬光普
时间:
2015-5-29 10:12
不可以,因为产生的顺序有先后之分
作者:
爱李萝卜
时间:
2015-5-29 10:34
不可以,静态方法是随着类的加载而加载。非静态变量是在类的实例化时才创建的。所以说在静态方法中使用一个不存在的变量,是不可行的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2