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
,然后在构造函数中实际初始化它们什么时候编译器运行?
答案 0 :(得分:1)
没有。首先,创建HelloStack对象:
new HelloStack("joseph", 89, "indian");
然后,对象加载和实例化不会发生一些相关的事情。接下来是线程进入构造函数,调用隐式super()
构造函数,然后一次设置一个字段:
this.myName = myName;
this.myAge = myAge;
this.myHeritage = myHeritage;
然后构造函数"返回"新的对象。该对象已分配给您的hiGuys
变量。
HelloStack hiGuys =
所以现在hiGuys只有一个值 - 那个新对象。