「javamain静态」java静态化

博主:adminadmin 2023-01-25 22:51:09 477

本篇文章给大家谈谈javamain静态,以及java静态化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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静态化的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。