定义长方形的类 帮解 解答代码

题目描述
定义一个表示长方形的类Rectangle,要求其中有长length和宽width两个属性,有求周长perimeter和面积area的两个方法。
定义一个带两个参数的构造方法用来创建指定长和宽的长方形;一个不带参数的构造方法,用来创建默认长和宽的长方形,默认的长为2,宽为1。
请编写一个Main类,在其中调用不带参数的构造方法创建一个Rectangle类的对象r1,并调用成员方法计算它的周长在独立的行中输出。再定义一个Rectangle类的变量r2表示一块草坪,在“请输入草坪的长和宽:”提示信息后输入草坪的长和宽,并调用带两个参数的构造方法来创建草坪对象,计算其面积,输出种植这块草皮的价格 (草皮的单价为12元/平方米)。周长和面积的输出小数点后面输出2位。

输入描述
草皮的长和宽,中间用空格分隔:

输出描述
样例中的:为中文状态的冒号;周长和面积的输出小数点后面输出2位。

输出样例
r1的周长为:00.00米
请输入草坪的长和宽:
草皮的总价为:00.00元

Rectangle类

public class Rectangle {
    private float width;
    private float height;
    
    public float perimeter() {
        //    求周长
        return (width + height) * 2;
    }

    public float area() {
        //    求面积
        return width * height;
    }

    public void price(){
        System.out.println("草皮的总价为:"+String.format("%.2f",area()*12)+"元");
    }

    public void setRectangle(float width, float height) {
        //有参构成,输入参数放到对象里
        this.height = height;
        this.width = width;
    }

    public void defaultRectangle() {
        //无参构造,设置默认值,调用方法
        this.height = 2;
        this.width = 1;
        System.out.println("r1的周长为:"+String.format("%.2f",perimeter())+"米");
        perimeter();
    }

}

主方法

import java.util.*;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("草皮的长和宽,中间用空格分隔:");
        float width = sc.nextFloat();
        float height = sc.nextFloat();
        Rectangle r2 = new Rectangle();
        //把参数放入到对象里
        r2.setRectangle(width, height);
        //计算地皮价格
        r2.price();
        //ri周长独立计算
        Rectangle r1 = new Rectangle();
        r1.defaultRectangle();
    }
}
计算结果

草皮的长和宽,中间用空格分隔:
5 6
草皮的总价为:360.00r1的周长为:6.00