黑马程序员技术交流社区

标题: 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