黑马程序员技术交流社区
标题:
static 方法内部不能调用非静态方法的原理是什么
[打印本页]
作者:
xiaoyi
时间:
2015-1-11 18:20
标题:
static 方法内部不能调用非静态方法的原理是什么
求解答
作者:
jojo
时间:
2015-1-11 19:18
非静态方法可能会访问类的实例变量,而实例变量的存在依赖于对象的存在。若静态方法可以访问非静态方法,此时如果用类名直接调用静态方法,那如此静态方法也可以直接操作实例变量了,而此时实例变量并不存在。
作者:
lwj123
时间:
2015-1-11 19:42
简单理解:静态方法是在类加载的时候就出现的,而非静态方法是该类实例化成对象时才能才存在的,先出现的不能去调用后出现的。
作者:
些许
时间:
2015-1-11 20:05
来学习的 路过!!!
作者:
466273082
时间:
2015-1-11 21:28
来学习的,路过的
作者:
廖彬
时间:
2015-1-11 21:50
静态方法在方法区中 随类的加载而加载,而非静态变量是随对象的建立而存在,在堆内存中。没有对象就没有非静态变量,那么静态方法又怎么能去访问一个可能不存在的变量呢
作者:
phil
时间:
2015-1-11 21:57
来学习一下,加油!
作者:
xiaoyi
时间:
2015-1-12 11:26
lwj123 发表于 2015-1-11 19:42
简单理解:静态方法是在类加载的时候就出现的,而非静态方法是该类实例化成对象时才能才存在的,先出现的不 ...
知道了 感谢
作者:
outsider1020
时间:
2015-1-12 12:23
static所修饰的方法是随着类的加载而被加载的,它是先于对象而存在的。而非静态的方法则是依赖于对象而存在的。当 调用静态方法时,此时对象不一定是存在的,所以非静态方法此时也不一定是有意义的。因此,静态方法内部是不能调用非静态的方法的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2