在JAVA中为什么要把一个main方法定义成一个静态方法?

实例化是什么意思?

1。静态方法的特点: 直接调用类名+方法名,不需要实例化类对象。
如: Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如: Hello hello=new Hello(参数1~n); hello.P();

2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。

3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。 一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-02-05
我是这么理解的:
如果方法f()被类A定义成静态方法,那么f()方法对于类A只有一个入口,也就是由A创建的所有对象共享一个入口。
如果方法f()不是静态的,那么由类A创建的每一个对象都有独立的入口。
方法main()是作为程序的入口,没有必要每个对象有一个入口,只需一个类有一个入口就行了,所以就定义成了静态的.
第2个回答  2009-02-05
静态的方法是不需要初始化实例的 直接就能调用的 main方法在这个 类里边
运行main的时候不需要 new这个类 然后再调用的 别的静态方法的调用也是不需要初始化实例的 只需要类名.方法就可以用了!
第3个回答  2009-02-05
静态方法是随着类进入内存时就被加载到内存的 不用实例化(如new HelloWorld()),而main方法是整个应用程序的入口
所有,如果不声明为static其他方法又怎么能进入内存让CPU来运算呢?

java中为什么要把main方法定义为一个static方法
原因:静态变量和静态方法在类被加载的时候就分配了内存空间,当非静态的方法调用他们的时候,他们已经有了内存空间,当然是可以调用的咯!(4)可以用类的对象去调用静态的方法。我们知道,在C\/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易...

JAVA里面的main函数为什么要定义为static的?
main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 test t=new test();然后才能调用 test.main();而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为...

为什么Java中的main方法必须是public static void的?
静态方法有一个特点,那就是静态方法独立于该类的任何对象,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到它们。而对于main方法来说,它的调用过程是经历了类加载、链接和初始化的,但是并没有被实例化过,这时候如果想要调用一个...

为什么main方法是public static void
main是java程序执行的入口,原则上他不属于任何类,但是由于java是一门面向对象的语言,在java中,万事万物皆为对象,这也就导致了main函数需要依赖于类而存在。因此他必须是类中的函数,但是肯定不能为成员函数(成员函数为类的一个特定的动作),因此只能static静态函数。另外,他需要具有外部访问的特征...

java中静态函数的意义
1、在java里被声明为静态的。jvm会把这个属性或者是方法的内存地址开辟在静态常量池中。2、它不能通过对象名来访问,而是通过类名来访问。而且在static声明的类里面。3、main函数是一个程序的入口jvm只会找你的main函数。jvm在调用main函数的时候没有newmain函数,所以java里面的main函数限制了,一定要...

代码必须包含一个main的共有main的静态方式?
是的,在Java语言中,一个类必须包含一个名为“main”的静态方法,才能作为程序的入口点。该方法必须遵循以下形式:public static void main(String[] args)在这个示例中,“public”是访问修饰符,表示该方法可以被任何地方调用。“static”表示该方法是一个静态方法,可以直接通过类名调用,而不需要实例...

哪个main()方法
Java程序中的main方法是程序的入口点。它是Java应用程序的起点,当Java虚拟机启动一个新的Java应用程序时,它会寻找并执行名为main的方法。该方法通常被定义为一个静态方法,这意味着它不需要创建类的实例就能被调用。其标准声明形式如下:java public static void main { \/\/ 程序代码从这里开始执行 } ...

Java中为什么要有静态方法 和非静态方法之分
public static String getColor(){ return color;} } 这时候,Dog的color就只有共性,都是某种颜色,你想现实中Dog的颜色可能会有多种,要更加符合现实的话,这个修饰color的static最好是去掉,方法也是如此。在java中方法有一个更好的取名——行为,字段也叫——属性。使用静态方法更多的用的是共性,...

java中为什么一个类中的一个方法调用另一个方法需要将被调用的方法声明...
不是的,但如果你在main方法里面调用的话就得是static了,因为main本来就是静态方法,只能调用静态的方法了。如果不是在main方法里面就可以。

为什么Java内部类要设计成静态和非静态两种
1. 嵌套类的对象,并不需要其外围类的对象。 即它可以不依赖于外部类实例被实例化。2. 不能从嵌套类的对象中访问非静态的外围类对象。 这是由Java语法中"静态方法不能直接访问非静态成员"所限定 3. 外部类访问内部类的的成员有些特别, 不能直接访问, 但可以通过内部类实例来访问, 这是因为静态...

相似回答