那么这里有关参数的操作顺序是什么?

时间:2015-03-15 18:15:06

标签: java netbeans parameters constructor

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,然后在构造函数中实际初始化它们什么时候编译器运行?

1 个答案:

答案 0 :(得分:1)

没有。首先,创建HelloStack对象:

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

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

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

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

HelloStack hiGuys = 

所以现在hiGuys只有一个值 - 那个新对象。