题目描述
定义一个表示长方形的类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.00元
r1的周长为:6.00米