黑马程序员技术交流社区

标题: 静态方法问题 [打印本页]

作者: 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