「javamain静态」java静态化
本篇文章给大家谈谈javamain静态,以及java静态化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中的main函数为什么是静态的
- 2、java中的main函数在何种情况下是静态的?
- 3、为什么java的main方法必须是静态的
- 4、怎样在java中定义一个main类,并且为public属性,且main类中包含main的静态方法?
- 5、Java提示main方法不能声明为静态。
- 6、在JAVA中为什么要把一个main方法定义成一个静态方法?
java中的main函数为什么是静态的
非
静态
成员函数
在执行前必须先构造并
实例化
该函数所在的类。
如果允许非静态的main,那么
main函数
所在的类必须先进行实例化,
那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化
代码
又写在哪呢?如果它也是非静态的,岂不是又要写个函数去实例化它所在的类嘛?
因此,JAVA语言就规定了main必须是静态的。
java中的main函数在何种情况下是静态的?
main函数其实也是所在类的一个方法,就比如一个类是test,那么该类的main其实就是test.main(String[] args),众所周知如果一个方法不是静态的,则要先实例化该类,比如要这样 A a=new A();
然后才能调用 a.main();
而这对于运行一个程序的主函数来说是不现实的,所以比如把main函数定义为static,使a.main()可以直接被调用。
因此,java规定了main函数必须是静态的
为什么java的main方法必须是静态的
所有static成员都是在程序装载时初始化的,被分配在一块静态存储区域。
这个区域的成员一旦被分配,就不再改变地址啦。直到程序结束才释放。
main()就存储在这里。
尽管包含main()的类还没有被实例化,但是main()方法已经可以使用啦。
而且JVM将会自动调用这个方法。通过main()的调用,再实例化其他的对象,
也包括自己所在的类。
怎样在java中定义一个main类,并且为public属性,且main类中包含main的静态方法?
//名为Main的一个类
public class Main {
//主方法
public static void main(String[] args) {
}
//名为main的无参静态方法
public static void main() {
}
//名为main的有参静态方法
public static void main(int n) {
}
}
Java提示main方法不能声明为静态。
main方法只能声明在static的方法中。
你碰到的问题是,Knowedge是内部非静态类类。
你可以把Knowedge变为static类,或者把Knowedge作为外部类。
这样:
class Tree {
String name;
int age;
int weight;
public Tree(String name, int age, int weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
public String Talk() {
return ("世界上最大的生物是:" + name + "\r他的年龄是:" + age + "\r他的体重为:");
}
public static class Knowedge {
public static void main(String[] args) { /* 这里提示main()不能修饰为静态=,只有在静态类型或顶级类型中才能声明静态方法。 */
Tree most = new Tree("世界爷", 2000, 1000);
System.out.println(most.Talk());
}
}
}
或者这样:
class Tree {
String name;
int age;
int weight;
public Tree(String name, int age, int weight) {
this.name = name;
this.age = age;
this.weight = weight;
}
public String Talk() {
return ("世界上最大的生物是:" + name + "\r他的年龄是:" + age + "\r他的体重为:");
}
}
public class Knowedge {
public static void main(String[] args) { /* 这里提示main()不能修饰为静态=,只有在静态类型或顶级类型中才能声明静态方法。 */
Tree most = new Tree("世界爷", 2000, 1000);
System.out.println(most.Talk());
}
}
在JAVA中为什么要把一个main方法定义成一个静态方法?
1。静态方法的特点:直接调用类名+方法名,不需要实例化类对象。
如:Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如:Hellohello=newHello(参数1~n);hello.P();
2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。
3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
关于javamain静态和java静态化的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。