-->
当前位置:首页 > 题库 > 正文内容

函数题:Rectangle类

Luz2年前 (2022-11-10)题库695
构造一个Rectangle类表示矩形 , 该类实现了Comparable接口。
* 该类有两个私有的double型成员变量width和height,表示矩形的宽度和高度;
*该类有一个带一个无参的构造方法,把宽带和高度都初始化为0;
* 该类有一个带两个double型参数的构造方法,用参数的值初始化矩形的宽度和高度。
* 为width和height添加getter()和setter()方法。注意,宽度和高度必须大于等于0,如果setWidth(double width)方法的参数小于0时,抛出一个IllegalArgumentException异常对象,异常对象的成员变量message为"矩形的宽度必须大于等于0";setHeight(double height)方法的参数小于0时,抛出一个IllegalArgumentException异常对象,异常对象的成员变量message为"矩形的高度必须大于等于0"。
* getArea()方法,返回矩形的面积;
* getgetPerimeter()方法,返回矩形的周长;
* 该类有一个公共的方法int compareTo(Rectangle rectangle),比较当前对象和参数。如果当前对象的面积大于参数的面积,返回1;当前对象的面积小于参数的面积,返回-1;否则返回0。
* 该类有一个公共方法toString(),根据矩形的宽度和高度生成并返回一个字符串(具体要求看输出样例)。

构造一个Main ,执行一个for循环,共循环6次。每次循环从键盘读入数据创建两个矩形对象,比较并输出其中较大的对象的面积;如果捕捉到异常,则输出异常信息。

### 裁判测试程序样例:
c++
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for(int i=0; i<6; i++) {
try{
Rectangle rectangle1 = new Rectangle(input.nextDouble(), input.nextDouble());
Rectangle rectangle2 = new Rectangle(input.nextDouble(), input.nextDouble());
Rectangle maxRectangle;
if (rectangle1.compareTo(rectangle2)>= 0)
maxRectangle = rectangle1;
else
maxRectangle = rectangle2;
System.out.println("The max area of " + rectangle1 + " and " + rectangle2 + " is " + maxRectangle.getArea());
} catch (IllegalArgumentException e1) {
System.out.println(e1.getMessage());
input.nextLine();
} catch (Exception e2) {
System.out.println(e2.getMessage());
input.nextLine();
}
}
}
}
/* 请在这里填写答案 */


### 输入样例:

in
-1 1 1 1
1 -1 1 1
1 1 -1 1
1 1 1 -1
3 4 2 5
3 4 2 7


### 输出样例:

out
矩形的宽度必须大于等于0
矩形的高度必须大于等于0
矩形的宽度必须大于等于0
矩形的高度必须大于等于0
The max area of Rectangle(width:3.0,height:4.0) and Rectangle(width:2.0,height:5.0) is 12.0
The max area of Rectangle(width:3.0,height:4.0) and Rectangle(width:2.0,height:7.0) is 14.0







答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。