是不是因为静态方法和动态方法在内存中的位置不一样,静态方法的地址空间在加载类的时候就确定,而动态方法的地址空间在生成类实例的时候确定?如果真是这样的话,在定义方法是静态还是动态的时候该如何做抉择,两者的优缺点是什么?
8 个解决方案
#1
静态方法不需要实例,如果调用实例方法?
#2
同意楼上,静态方法实际上就是全局函数拉,他没有instance跟他关联的,那么他怎么去调用某个对象的动态方法呢,他们的区别主要就在于全局和局部函数的概念拉。
#3
静态时,一般通过 类名引用, 动态可以通过类实例化引用
#4
如果你想实现通用的功能性的方法,考虑采用静态方法:如Math类里的方法。
但如果你所有的类都是用静态方法,那你的程序就不会体现OO的思想了。
但如果你所有的类都是用静态方法,那你的程序就不会体现OO的思想了。
#5
静态方法又叫类方法。
但是不是kingofhawks说的:“区别主要就在于全局和局部函数的概念拉”
全局与局部的问题是封装的问题,说穿了就是private public portect 的问题
而静态、动态的问题是内存装载的问题,说穿了就是static的问题
学过c吗?原理一样的。但是也不能说静态方法没办法调用动态方法,看下面的例子。
public class A{
/**这是一个非静态方法
*/
public void method1(){
}
/**这是一个静态方法
*/
public static void method2(){
A myA = new A();
myA.method1();//调用
}
}
但是不是kingofhawks说的:“区别主要就在于全局和局部函数的概念拉”
全局与局部的问题是封装的问题,说穿了就是private public portect 的问题
而静态、动态的问题是内存装载的问题,说穿了就是static的问题
学过c吗?原理一样的。但是也不能说静态方法没办法调用动态方法,看下面的例子。
public class A{
/**这是一个非静态方法
*/
public void method1(){
}
/**这是一个静态方法
*/
public static void method2(){
A myA = new A();
myA.method1();//调用
}
}
#6
静态方法属于类,普通方法属于对象
#7
反过来可以,这样想应该比较容易想的通
#8
因为表态的不需要实例化就可以用
而动态的是必须通过实例化对象以后,用对象去调用
而动态的是必须通过实例化对象以后,用对象去调用
#1
静态方法不需要实例,如果调用实例方法?
#2
同意楼上,静态方法实际上就是全局函数拉,他没有instance跟他关联的,那么他怎么去调用某个对象的动态方法呢,他们的区别主要就在于全局和局部函数的概念拉。
#3
静态时,一般通过 类名引用, 动态可以通过类实例化引用
#4
如果你想实现通用的功能性的方法,考虑采用静态方法:如Math类里的方法。
但如果你所有的类都是用静态方法,那你的程序就不会体现OO的思想了。
但如果你所有的类都是用静态方法,那你的程序就不会体现OO的思想了。
#5
静态方法又叫类方法。
但是不是kingofhawks说的:“区别主要就在于全局和局部函数的概念拉”
全局与局部的问题是封装的问题,说穿了就是private public portect 的问题
而静态、动态的问题是内存装载的问题,说穿了就是static的问题
学过c吗?原理一样的。但是也不能说静态方法没办法调用动态方法,看下面的例子。
public class A{
/**这是一个非静态方法
*/
public void method1(){
}
/**这是一个静态方法
*/
public static void method2(){
A myA = new A();
myA.method1();//调用
}
}
但是不是kingofhawks说的:“区别主要就在于全局和局部函数的概念拉”
全局与局部的问题是封装的问题,说穿了就是private public portect 的问题
而静态、动态的问题是内存装载的问题,说穿了就是static的问题
学过c吗?原理一样的。但是也不能说静态方法没办法调用动态方法,看下面的例子。
public class A{
/**这是一个非静态方法
*/
public void method1(){
}
/**这是一个静态方法
*/
public static void method2(){
A myA = new A();
myA.method1();//调用
}
}
#6
静态方法属于类,普通方法属于对象
#7
反过来可以,这样想应该比较容易想的通
#8
因为表态的不需要实例化就可以用
而动态的是必须通过实例化对象以后,用对象去调用
而动态的是必须通过实例化对象以后,用对象去调用