gpt4 book ai didi

java - 构造函数重载示例中的混淆

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:35 25 4
gpt4 key购买 nike

下面的程序输出为

 I am Parameterized Ctor
a = 0
b = 0

public class ParameterizedCtor {

private int a;
private int b;

public ParameterizedCtor() {
System.out.println("I am default Ctor");
a =1;
b =1;
}

public ParameterizedCtor(int a, int b) {
System.out.println(" I am Parameterized Ctor");
a=a;
b=b;

}
public void print() {
System.out.println(" a = "+a);
System.out.println(" b = "+b);
}

public static void main(String[] args) {

ParameterizedCtor c = new ParameterizedCtor(3, 1);
c.print();
}

}

这是什么原因?

最佳答案

未初始化的私有(private)变量 a 和 b 默认设置为零。然后重载 c'tctor 就位。即,parameterCtor(int a, int b) 将从 main 调用,局部变量 a 和 b 设置为 3 和 1,但类变量 a 和 b 仍然为零。因此,a=0, b=0(不会调用默认 c'tor)。

要设置类变量,请使用:

this.a = a;
this.b = b;

关于java - 构造函数重载示例中的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4646398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com