java中静态方法的一个小问题

如果不能从静态上下文中引用非静态方法
但是main入口又必须是静态的

那我想在main中调用非静态的方法
该如何做?

阅读 3.2k
5 个回答

非静态方法只能通过对象来调用。
如果你想在静态方法中调用非静态方法,直接产生一个实例(对象),再这个实例上调用就好了啊。

但是要注意:静态环境是“全局”的,实例(对象)环境是封闭的

public final class App {
    private void instanceMethod() {
        System.out.println("这是一个实例方法,而不是静态方法");
    }

    public static void main(String[] args) {
        new App().instanceMethod();
    }
}

new 一个“非静态方法”所在的对象实例,然后调用该对象的这个“非静态方法”

静态方法是 类 的,类就在那里所以能直接调用
实例方法是 实例 的,所以需要实例所以要new实例才能调用

public class Test{
    public static void main(String args[]){
        Test test = Test();
        String s = test.tips();//调用实例方法
        System.out.println(s);
    }

    public String tips(){
        return "tips";
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题