为什么有些对象会自行初始化?

时间:2018-09-28 14:09:49

标签: java

FileSearchApp.java

package com.example.filesearch;

public class FileSearchApp {
    String path;
    String regex;

    public static void main(String[] args) {
        FileSearchApp app = new FileSearchApp(); // ?

        // some othe code
    }

}

为什么有FileSearchApp app = new FileSearchApp();行?为什么一个对象需要重新创建自己?调用诸如callMethod1();之类的方法没有问题。

2 个答案:

答案 0 :(得分:2)

mainstatic,如果不创建新实例,则只能调用它的其他静态方法。

答案 1 :(得分:2)

有两种类型的方法和四种类型的变量。在这种情况下,主要的两个是

  • 实例
  • 静态

如果看到关键字static,则它们是静态的(如果不是实例的话)。

它们在两个不同的地方。启动应用程序时,您位于main方法内,它是static。要访问实例变量或方法,例如pathregex和任何其他实例方法,您需要一个对象。这就是语句new FileSearchApp()出现的地方。

方法局部变量app保存您的对象,以便您可以使用该对象调用其中的所有实例。

app.path;
app.regex;
app.instanceMethod();