容易,关于构造函数运行循序

简单,关于构造函数运行循序
public class Duck {
     int size;
     
    public Duck(int newsize){
     if(newsize==0)
     {
     size =27;    
     }
     else
     {
     size = newsize;
     }
    }
    
    public Duck(){
    
    }
public static void main(String[] args) {
Duck quack = new Duck(25);
        System.out.println(quack.size);
}

}


新手求这个程序运行顺序,不是很确定,用123来答吧,thanks in advance.
------解决思路----------------------
引用:
Quote: 引用:

先进入  main方法  然后你创建了对象Duck quack = new Duck(25); 但是你创建对象的 构造方法 是带参数的 所以调用你的
public Duck(int newsize) 这个方法 然后 size= 25  (你传的值)
然后返回到main方法中 继续执行System.out.println(quack.size); 最后输出25

你没说类里面的那个int size;是什么时候分配内存的,我主要就是那个不懂


Duck quack = new Duck(25); 在创建对象时就已经创建了属性的空间只不过你的这个属性没有初始化 
你在后来的代码中对其赋值了
构造函数的作用就是为类的属性进行申请内存空间并初始化
构造函数可以这么写
public Duck(int size){
   this.size=size;
}
this.size 指的就是你类Duck 里面的size的属性size,,而 =号后面的size 是Duck函数的形参
------解决思路----------------------
3楼正解容易,关于构造函数运行循序
------解决思路----------------------
3楼讲的很详细啊
------解决思路----------------------
3楼讲的很详细