在对象创建时自动调用方法?

时间:2013-10-23 11:42:54

标签: java

我无法理解此代码的输出。

班级;

public class StaticMethodClass {

  public String str = display();

  public static String display() {
    System.out.println("Static Method");
    return "Hello";
  }

}

主要;

public static void main(String[] args) {
    System.out.println("Main");
    StaticMethodClass methodClass = new StaticMethodClass();
    System.out.println(methodClass.str);
  }

输出;

Main
Static Method
Hello

为什么自动调用 display()方法?

4 个答案:

答案 0 :(得分:4)

创建类的实例时,需要初始化所有字段。因此,调用display()方法来初始化"str"

答案 1 :(得分:4)

因为,您在类的实例中调用了display方法。

public String str = display();

答案 2 :(得分:1)

当你创建一个新的StaticMethodClass时,它会通过调用display()来初始化str。

答案 3 :(得分:0)

因为类成员str在创建类StaticMethodClass的对象时使用此方法初始化。您可以使用main()方法创建对象。