Java Rectangle类双构造方法作用及删除无参构造报错原因咨询
问题解答
1. Rectangle类两个构造方法的作用
- 无参构造方法
public Rectangle(){}:用于创建使用默认属性值初始化的矩形实例,你代码中给length设置了默认值25.0、width设置了默认值15.5,调用这个构造不需要传参,就能得到一个默认尺寸的Rectangle对象。 - 带参构造方法
public Rectangle(double length, double width):用于自定义尺寸的矩形实例创建,实例化时可以直接传入指定的长宽参数完成初始化,无需后续再调用setter方法修改属性,适配灵活的业务场景。
2. 删除无参构造后报错的原因
你代码的静态print()方法中,存在调用无参构造的代码:
Rectangle rt = new Rectangle();
Java的构造方法存在默认生成规则:如果开发者没有为类编写任何自定义构造方法,编译器会自动生成一个空实现的无参构造;但只要你编写了至少一个自定义构造方法(你这里已经写了带参构造),编译器就不会再自动生成无参构造。
所以你手动删除自己写的无参构造后,new Rectangle()找不到匹配的构造方法,直接触发编译报错。
如果不需要保留无参构造,把上述实例化代码改为调用带参构造即可,例如:
Rectangle rt = new Rectangle(25.0, 15.5);
内容的提问来源于stack exchange,提问作者Jm Planteras
相关产品推荐
相关产品推荐

