【问题标题】:Two constructors?两个构造函数?
【发布时间】:2021-09-07 08:18:56
【问题描述】:

我已经用 setter 和 getter 完成了我的任务(我用 OOD 完成了这个)但是我仍然不明白这两个 Rectangle 方法的目的是什么,如果我删除了空的 Rectangle 会提示错误:

附:这不是完整的代码。

// private double length = 25.0;
private double width = 15.5;

public Rectangle(){

}

public Rectangle(double length, double width){
    this.length = length;
    this.width = width;
}

public void setDimension(double length,double width){
    this.length = length;
    this.width=width;
}

public double getLength(){
    return length;
}

public double getWidth(){
    return width;
}

public double area(){
    return length * width;
}

public double perimeter(){
    return 2 * (length + width);
}

public static void print(){
    Rectangle rt = new Rectangle();
    Box box = new Box();
    System.out.println("The rectangle has a length of " + rt.getLength() + " and a width of " + rt.getWidth() );
    System.out.println("The rectangle has an area of "+ rt.area());
    System.out.println("The rectangle has a perimeter of "+ rt.perimeter());
    box.print();
}

【问题讨论】:

  • 它是一个空的无参数构造函数,您可以通过new Rectangle() 调用它,是否有意义让它值得商榷但不是这样。
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: java constructor compiler-errors getter setter


【解决方案1】:

这是默认的(无参数)构造函数。由于您有另一个构造函数,如果您没有显式定义它,Java 不会隐式创建它。由于print 方法中的第一行调用了它,如果你删除它,你会得到一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 2010-10-07
    • 2016-03-30
    • 2015-10-15
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多