class A
{
private int a;
......
public void fun()
{...}
}
class B
{
public void main(String args[])
{ ... new A().fun();}
}
B中的main方法调用A中的fun非得实例化A.
那必须分配空间给A的数据域,
大家不觉得这很浪费空间和执行时间吗??
{
private int a;
......
public void fun()
{...}
}
class B
{
public void main(String args[])
{ ... new A().fun();}
}
B中的main方法调用A中的fun非得实例化A.
那必须分配空间给A的数据域,
大家不觉得这很浪费空间和执行时间吗??
我的意思是指,为了一个非静态方法,必须实例化类。
这样无形中也必须给非静态域分配空间。
我觉得是浪费。不知道JAVA设计的时候有没有考虑过这个问题。
使用静态方法,public static methodname(){}
比如:
1:new A().fun();
2:new A().fun(); 当执行完1,这个对象就被垃圾回收,内存中已经没有这个对象了,然后开始2
而如果作为静态方法则会长驻内存
哎~为什么什么问题都能难住我-。-#
1.方法是static的,这种情况下可以直接用类名来调用,不用实例化对象;
2.方法不是static的,这种情况下就必须创建一个该类的对象,只有这样,才能完成调用方法的操作。
否则的话,你不告诉JVM你想调用哪个类的方法就想调用该方法的话,那么从JVM的角度来看,JVM是不知道你到底要调用哪个方法的。