为什么Java里的静态方法没办法调用动态方法?
是不是因为静态方法和动态方法在内存中的位置不一样,静态方法的地址空间在加载类的时候就确定,而动态方法的地址空间在生成类实例的时候确定?如果真是这样的话,在定义方法是静态还是动态的时候该如何做抉择,两者的优缺点是什么?
是不是因为静态方法和动态方法在内存中的位置不一样,静态方法的地址空间在加载类的时候就确定,而动态方法的地址空间在生成类实例的时候确定?如果真是这样的话,在定义方法是静态还是动态的时候该如何做抉择,两者的优缺点是什么?
调试欢乐多
但如果你所有的类都是用静态方法,那你的程序就不会体现OO的思想了。
但是不是kingofhawks说的:“区别主要就在于全局和局部函数的概念拉”
全局与局部的问题是封装的问题,说穿了就是private public portect 的问题而静态、动态的问题是内存装载的问题,说穿了就是static的问题学过c吗?原理一样的。但是也不能说静态方法没办法调用动态方法,看下面的例子。public class A{
/**这是一个非静态方法
*/
public void method1(){ } /**这是一个静态方法
*/
public static void method2(){
A myA = new A();
myA.method1();//调用
}
}