我需要知道为什么这个应用程序的输出是:1243

时间:2017-12-24 18:54:23

标签: java

class A{
    public A(int i) {
        System.out.println(1);
    }
    public A() {
        this(10);
        System.out.println(2);
    }
    void A() {
        A(10);
        System.out.println(3);
    }
    void A(int i) {
        System.out.println(4);
    }
}

public class MainClass{
    public static void main(String[] args) {
        new A().A();
    }
}

我不了解此代码的输出。我是初学者,我真的想知道为什么会发生这种情况,执行轨道或者这段代码运行时会发生什么?

1 个答案:

答案 0 :(得分:2)

  1. 使用空构造函数创建A类的新实例。 new A()
  2. 在空构造函数中,第一个调用是值为this(10)的构造函数。
  3. 在具有int值的构造函数中,显示“ 1 ”。 System.out.println(1)
  4. 然后返回空构造函数并调用“ 2 ”。 System.out.println(2)
  5. 接下来,调用没有参数的方法。 .A()
  6. 然后用参数调用方法。 A(10)
  7. 然后打印“ 4 ”。 System.out.println(4)
  8. 还返回上一个方法并打印“ 3 ”作为上一个操作。 System.out.println(3)
  9. https://i.imgur.com/i5l8kTA.png

    抱歉我的英文。