java – 构造函数重载的混乱示例
发布时间:2020-12-14 16:39:38 所属栏目:Java 来源:网络整理
导读:以下程序输出为 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) { S
以下程序输出为
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(); } } 是什么原因? 解决方法
未初始化的私有变量a和b默认设置为零.并且重载c’tctor到位,参数ctor(int a,int b)将从main和局部变量a& b设置为3和1,但类变量a和b仍然为零.因此,a = 0,b = 0(默认值不会被调用).
要设置类变量,请使用: this.a = a; this.b = b; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |