Java 无法理解程序工作流程
有人能给我解释一下这个程序的输出吗? 我无法了解“名为10的构造函数”是如何打印出来的。 提前感谢。Java 无法理解程序工作流程,java,constructor,Java,Constructor,有人能给我解释一下这个程序的输出吗? 我无法了解“名为10的构造函数”是如何打印出来的。 提前感谢。 main调用Test2的构造函数 在执行该构造函数的主体之前,初始化该类的所有实例变量 这包括test1t1=newtest1(10)执行带有参数10的Test1构造函数,并打印“constructor called 10” 然后才执行Test2构造函数的主体,其中包括t1=newtest1(i),它使用参数i(其值为5)执行Test1的构造函数,并打印“名为5的构造函数” main调用Tes
- main调用
的构造函数Test2
- 在执行该构造函数的主体之前,初始化该类的所有实例变量李>
- 这包括
执行带有参数10的test1t1=newtest1(10)
构造函数,并打印“constructor called 10”李>Test1
- 然后才执行
构造函数的主体,其中包括Test2
,它使用参数t1=newtest1(i)
(其值为5)执行i
的构造函数,并打印“名为5的构造函数”Test1
- main调用
的构造函数Test2
- 在执行该构造函数的主体之前,初始化该类的所有实例变量李>
- 这包括
执行带有参数10的test1t1=newtest1(10)
构造函数,并打印“constructor called 10”李>Test1
- 然后才执行
构造函数的主体,其中包括Test2
,它使用参数t1=newtest1(i)
(其值为5)执行i
的构造函数,并打印“名为5的构造函数”Test1
// filename: Test2.java
class Test1 {
Test1(int x) {
System.out.println("Constructor called " + x);
}
}
// This class contains an instance of Test1
class Test2 {
Test1 t1 = new Test1(10);
Test2(int i) { t1 = new Test1(i); }
public static void main(String[] args) {
Test2 t2 = new Test2(5);
}
}
Output:
Constructor called 10
Constructor called 5
在它的构造函数中有一个print语句,它打印传递给构造函数的值
Test1 t1 = new Test1(10);
这就是输出的来源。在Test2类中,通过调用Test1的构造函数并传入值10,您已经创建了Test1的实例
// filename: Test2.java
class Test1 {
Test1(int x) {
System.out.println("Constructor called " + x);
}
}
// This class contains an instance of Test1
class Test2 {
Test1 t1 = new Test1(10);
Test2(int i) { t1 = new Test1(i); }
public static void main(String[] args) {
Test2 t2 = new Test2(5);
}
}
Output:
Constructor called 10
Constructor called 5
在它的构造函数中有一个print语句,它打印传递给构造函数的值
Test1 t1 = new Test1(10);
这就是您的输出的来源。我已经调试了该程序,但我不确定我是否遗漏了任何概念。就像在Test2的构造函数中点击t1一样,它移动到t1被分配Test1的对象引用的行:(.t1只是调用Test1构造函数的一个参考变量。如果我听起来很无聊,请原谅。我已经调试了该程序,但我不确定我是否遗漏了任何概念。就像在Test2构造函数中点击t1一样,它移动到t1被分配Test1的对象引用的行:(.t1只是调用Test1构造函数的一个参考变量。请原谅我听起来很无聊。啊!明白了。在执行构造函数之前,初始化了第一个实例变量。非常感谢:)啊!明白了。在执行构造函数之前,初始化了第一个实例变量。非常感谢:)