首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主类中的每个方法都必须是静态的吗?

主类中的每个方法都必须是静态的吗?
EN

Stack Overflow用户
提问于 2011-11-14 13:44:58
回答 7查看 59.9K关注 0票数 24

我对java完全是个新手,但是在今天晚上练习的时候,我突然想到,在面向对象的设计中,主类中的每个方法都必须是静态的,对吧?在这段代码中,我无法在类中调用非静态的方法。

似乎我忽略了为什么你要声明一个类是静态的或者不是。谢谢你的帮忙!

代码语言:javascript
复制
public class JavaApplication2 {

private static CreateCar Vroom;
private static Limo Fuuu;

public static void main(String[] args) {
     Vroom = new CreateCar();
     Vroom.creator();
     getGas();
     addGas();
     getGas();
     Fuuu = new Limo();
     Fuuu.creator();
     Fuuu.wheels = 5;
     Fuuu.wheelie();
}
 public static int getGas(){
     Vroom.returnGas();
     return 0;
 }
 public static void addGas(){
     Vroom.fillerUp();
 } 
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-11-14 13:47:51

您可以调用非静态方法,但只能通过对象执行此操作。也就是说,您需要在给定对象上调用该方法。

您的主类也可以实例化,因此不是主类中的每个方法都需要是静态的。例如:

代码语言:javascript
复制
public class MainClass {
    int value;

    public void printValue() {
        System.out.println("" + value);
    }

    public static void main(String[] args){
        MainClass o = new MainClass();
        o.printValue();
    }
}
票数 49
EN

Stack Overflow用户

发布于 2011-11-14 13:55:00

不是的。但是main方法必须是static

要在类中调用非静态方法,必须创建对该类对象的引用。然后从引用中调用该方法。

代码语言:javascript
复制
public class JavaApplication2 {
    // non-static method
    public void go() {
        System.out.println("hello");
    }

    public static void main(String[] args) {
        // declare a reference
        JavaApplication2 app;
        // create an object
        app = new JavaApplication2();
        // call a method
        app.go();
    }
}
票数 8
EN

Stack Overflow用户

发布于 2011-11-14 13:49:32

简短的回答是:是的。

原因是您的JVM需要调用类的"main“,而不依赖于该类已有的实例。

次要的语义吹毛求疵:"main“是类的成员(静态成员);它不是类本身的名称。

有用的提示:每个类都可以有自己的不同的"main()“。这对于对单个类进行单元测试非常有用。

这有时会让C/C++程序员感到震惊,因为在C/C++程序员中,"main()“与".exe”相关联,而您只能使用其中的一个。在java中,您可以有许多"main()“方法,并在运行时调用您选择的任何一个方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档