public class HelloStack{

    private String myName;
    private int myAge;
    private String myHeritage;

    HelloStack(String myName, int myAge, String myHeritage){
        this.myName = myName;
        this.myAge = myAge;
        this.myHeritage = myHeritage;
    }


然后在我的main()中创建一个对象:

HelloStack hiGuys = new HelloStack("joseph", 89, "indian");


如果我对这里的参数作用理解正确,我会将值从hiGuys传递到构造函数Hellostack,然后在编译器运行时在构造函数中将它们初始化?

最佳答案

否。首先,创建HelloStack对象:

new HelloStack("joseph", 89, "indian");


然后,对象加载和实例化会发生一些无关紧要的事情。接下来的事情是线程进入构造函数,调用隐式super()构造函数,然后一次将字段设置为一个:

    this.myName = myName;
    this.myAge = myAge;
    this.myHeritage = myHeritage;


然后,构造函数“返回”新对象。该对象已分配给您的hiGuys变量。

HelloStack hiGuys =


因此,现在hiGuys具有单个值-该新对象。

09-12 23:18