77问答网
所有问题
请问为什么静态方法中不能调用非静态方法
如题所述
举报该问题
其他回答
第1个回答 2009-01-19
静态方法的内存分配时间与实例方法不同
当程序开始运行时,静态方法已经在内存中被分配了空间,有了入口地址,所以可以通过"类名.方法名"直接调用
而实例方法只有在创建了该类的对象以后才分配内存
也就是说程序开始运行后静态方法已经有了入口地址,而此时实例方法可能并未被分配内存,所以无法通过静态方法调用实例方法
同理也不能用"类名.方法名"的方式调用实例方法本回答被提问者采纳
相似回答
静态成员函数
为什么不能
访问本类中的
非静态
成员?
答:
如果要在类外调用公用的静态成员函数,要用类名和域运算符“∷”。如Box∷volume( );实际上也允许通过对象名
调用静态
成员函数,如a.volume( );但这并不意味着此函数是属于对象a的,而只是用a的类型而已。静态成员函数的作用是为了能处理静态数据成员。可以说,静态成员函数与
非静态
成员函数的根本区别...
Java
静态方法为什么不能
访问
非静态方法
答:
这个涉及到Java的类加载机制, 当类加载初始化的时候会初始化静态方法, 此时这个类还没有实例化, 所以在当你在
静态方法中
访问
非静态方法
的时候,非静态方法还没有构造, 怎么访问.
静态方法
的内部可以
不可以调用非静态
的方法
答:
当然不可以,静态方法会在加载类的时候首先被加载,然后是构造函数和非静态方法,
它们的生命周期不同,所以静态方法无法调用非静态
“
无法
从静态上下文中引用
非静态方法
”这个问题怎么解决?
答:
静态方法中不能
直接
调用非静态方法
。因为非静态方法不是独立存在的,它是依附于对象存在——即只有申明了对象,才能通过对象调用。而静态方法则可以直接通过类名调用,而不需要申明对象。因此直接引用非静态方法就会出错。比如常见的main方法都是静态的,必须由static修饰,因此在main方法里调用类的其他非静态...
一个
静态方法里面
的
非静态方法
吗
答:
是的,同时,静态方法也
不能调用非静态方法
的。因为:1、静态方法的内存分配时间与实例方法不同,当程序开始运行时,静态方法已经在内存中被分配了空间,有了入口地址,所以可以通过"类名.方法名"直接调用。2、实例方法只有在创建了该类的对象以后才分配内存。也就是说程序开始运行后静态方法已经有了入口...
用static修饰的
方法能不能调用非static方法
,能不能访问非static变量...
答:
不能
,因为
静态方法
在类装载的时候就分配了内存块,而
非静态
的方法和变量在new这个类的对象的时候才分配内存块,他们内存分配的时间不一样 静态区域访问非静态区域是没有任何意义的
JAVA 里既然
静态方法无法调用非静态方法
,那主方法main
里面
,
为什么
可...
答:
静态方法不可以
调
非静态
全局变量,从内存的角度看,就是当类被加载的时候静态方法和静态属性(全局静态变量)被加载到内存中,就是在内存中开辟一段内存地址用来保存静态方法和静态属性,这时候没有被实例化的类在内存中是不存在的,所以静态方法是
不能
访问非静态的全局变量。在类被实例化的时候,就是...
大家正在搜
静态方法调用非静态方法
java静态方法调用静态方法
静态方法可以调用非静态变量吗
java静态方法和非静态方法
可以用类名调用非静态方法
静态方法只能处理静态变量
java静态和非静态的调用
对象可以调用静态方法吗
java静态方法和普通方法
相关问题
为什么静态方法不能调用非静态的变量和方法
为什么不能从静态的方法里面调用非静态方法,或变量
JAVA中 在static方法内部能否调用非静态方法
java中静态方法中不能调用非静态方法
如何从静态main里调用外面的非静态方法?
c# 静态方法不能直接调用非静态成员,请问哪位高手知道如何间...
java中如何在静态方法中实现对非静态方法的调用,请问各位有...
JAVA 里既然静态方法无法调用非静态方法,那主方法main...