Java如何使用3参数Circle构造器设置radius和center两个实例变量
你当前的代码存在两处不符合需求的问题:
- 继承逻辑冗余:你已经在
Circle类中声明了Point类型的center属性存储圆心,不需要再继承Point类 - 构造器未完成
center属性赋值:现有构造器仅调用父类Point的构造方法给父类的x、y属性赋值,你自定义的center属性始终为null,运行时调用会触发空指针异常
修正后符合需求的代码
// 前提:你的Point类存在两个double参数的构造方法,用于初始化x、y坐标 public class Circle { private double radius; private Point center; // 3个参数的Circle构造器,完全匹配需求 public Circle(double x, double y, double radius) { // 用传入的x、y参数构造Point对象,赋值给center属性 this.center = new Point(x, y); // 给radius属性赋值 this.radius = radius; } // 下方可补充getter、setter、计算面积周长等自定义方法 }
如果你确实需要保留Circle继承Point的设计
如果UML要求Circle必须继承Point,那么不需要额外声明center属性,直接使用继承自父类的x、y作为圆心坐标即可,修正代码如下:
public class Circle extends Point { private double radius; public Circle(double x, double y, double radius) { // 调用父类Point构造方法初始化圆心坐标 super(x, y); this.radius = radius; } }
你参考的UML图如下:
内容的提问来源于stack exchange,提问作者GluhaiaMuha
相关产品推荐
相关产品推荐

