题目要求我们设计一个名为Rectangle的类表示矩形,并且提供一些方法来计算矩形的面积和周长。下面介绍如何设计这个类。
首先,矩形有两个属性,即宽和高,因此我们需要定义两个double类型的数据域来分别表示矩形的宽和高。同时,这两个数据域的默认值都为1,因此需要提供一个无参构造方法来创建默认矩形。此外,我们还需要提供一个有参构造方法来创建指定宽和高的矩形。
其次,我们需要提供两个方法来计算矩形的面积和周长。计算矩形的面积很简单,只需要将矩形的宽和高相乘即可;计算矩形的周长也很简单,只需要将矩形的宽和高相加,然后乘以2即可。
最后,我们需要编写一个测试程序来测试Rectangle类的功能。测试程序需要从标准输入中读取两个矩形的宽和高,然后创建两个Rectangle对象,并按照顺序显示每个矩形的宽、高、面积和周长。
完整的Rectangle类和测试程序实现如下:
Rectangle类实现
public class Rectangle {
private double width;
private double height;
public Rectangle() {
this.width = 1;
this.height = 1;
}
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double getArea() {
return width * height;
}
public double getPerimeter() {
return 2 * (width + height);
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
}
测试程序实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double width1 = scanner.nextDouble();
double height1 = scanner.nextDouble();
Rectangle rectangle1 = new Rectangle(width1, height1);
System.out.printf("%.1f %.1f %.1f %.1f\n", rectangle1.getWidth(), rectangle1.getHeight(), rectangle1.getArea(), rectangle1.getPerimeter());
double width2 = scanner.nextDouble();
double height2 = scanner.nextDouble();
Rectangle rectangle2 = new Rectangle(width2, height2);
System.out.printf("%.1f %.1f %.1f %.1f\n", rectangle2.getWidth(), rectangle2.getHeight(), rectangle2.getArea(), rectangle2.getPerimeter());
}
}
测试程序首先从标准输入中读取两个矩形的宽和高,然后创建两个Rectangle对象,并按照顺序显示每个矩形的宽、高、面积和周长。注意,将浮点数输出时需要指定保留小数点后一位,因此使用了%.1f
格式化字符串来输出浮点数。
总结
本文介绍了如何设计一个名为Rectangle的类来表示矩形,并提供一些方法来计算矩形的面积和周长。同时,还编写了一个测试程序来测试Rectangle类的功能。这个例子展示了如何使用面向对象的思想来设计类和方法,以及如何使用Java语言来实现类和方法的具体实现。