java按要求编写一个Java应用程序: [1].编写一个矩形类Rect,包含:两个protected属性:矩形的宽width;矩形的高height。 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化; 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。 两个方法: 1.求矩形面积的方法area() 2.求矩形周长的方法perimeter()
时间: 2023-05-21 13:05:48 浏览: 410
好的,以下是代码,实现了您的要求:
```java
public class Rect {
protected int width;
protected int height;
public Rect(int width, int height) {
this.width = width;
this.height = height;
}
public Rect() {
this.width = 10;
this.height = 10;
}
public int area() {
return this.width * this.height;
}
public int perimeter() {
return 2 * (this.width + this.height);
}
}
```
您可以根据需要进行测试。如果您还有其它问题,可以继续问我。
相关问题
要求编写一个Java应用程序:(1)编写一个矩形类Rect,包含:两个protected属性:矩形的宽width;矩形的高height。两个构造方法:一个带有两个参数的构造方法,用于将width和height属性初化;一个不带参数的构造方法,将矩形初始化为宽和高都为10。两个方法:求矩形面积的方法area()求矩形周长的方法perimeter()(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用矩形的左上角坐标来标识,包含:添加两个属性:矩形左上角坐标startX和startY。两个构造方法:带4个参数的构造方法,用于对startX、startY、width和height属性初始化;不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0的矩形;添加一个方法:判断某个点是否在矩形内部的方法isInside(double x,double y)。如在矩形内或点在边上,返回true, 否则,返回false。(3)编写Main类的测试程序创建一个左上角坐标为(x,y),宽为w,高为h的矩形对象;计算并打印输出矩形的面积和周长;判断点(m,n)是否在矩形内,并打印输出相关信息(In或Out)。
好的,我理解了你的要求。以下是我的回答:
Rect类的代码如下:
```java
public class Rect {
protected double width;
protected double height;
public Rect(double width, double height) {
this.width = width;
this.height = height;
}
public Rect() {
this.width = 10;
this.height = 10;
}
public double area() {
return width * height;
}
public double perimeter() {
return 2 * (width + height);
}
}
```
PlainRect类的代码如下:
```java
public class PlainRect extends Rect {
protected double startX;
protected double startY;
public PlainRect(double startX, double startY, double width, double height) {
super(width, height);
this.startX = startX;
this.startY = startY;
}
public PlainRect() {
this.startX = 0;
this.startY = 0;
this.width = 0;
this.height = 0;
}
public boolean isInside(double x, double y) {
return x >= startX && x <= startX + width && y >= startY && y <= startY + height;
}
}
```
Main类的测试程序代码如下:
```java
public class Main {
public static void main(String[] args) {
PlainRect rect = new PlainRect(1, 2, 3, 4);
System.out.println("矩形的面积为:" + rect.area());
System.out.println("矩形的周长为:" + rect.perimeter());
double m = 2.5;
double n = 3.5;
if (rect.isInside(m, n)) {
System.out.println("(" + m + ", " + n + ")在矩形内");
} else {
System.out.println("(" + m + ", " + n + ")不在矩形内");
}
}
}
```
希望这些代码能够满足你的需求。
编写方法,求GeometricObject数组中所有对象的面积之和。 Public static double sumArea(GeometricObject[] a) 编写测试程序,创建四个对象(两个圆和两个矩形)的数组并使用sumArea方法求它们的总面积。
### 回答1:
以下是编写的Java代码:
```
public class GeometricObject {
protected double area;
public double getArea() {
return area;
}
}
public class Circle extends GeometricObject {
private double radius;
public Circle(double radius) {
this.radius = radius;
area = Math.PI * radius * radius;
}
}
public class Rectangle extends GeometricObject {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
area = width * height;
}
}
public class Main {
public static double sumArea(GeometricObject[] a) {
double sum = 0;
for (GeometricObject obj : a) {
sum += obj.getArea();
}
return sum;
}
public static void main(String[] args) {
Circle circle1 = new Circle(2);
Circle circle2 = new Circle(3);
Rectangle rect1 = new Rectangle(2, 3);
Rectangle rect2 = new Rectangle(4, 5);
GeometricObject[] arr = {circle1, circle2, rect1, rect2};
double totalArea = sumArea(arr);
System.out.println("Total area of all objects: " + totalArea);
}
}
```
输出结果为:
```
Total area of all objects: 44.84955592153876
```
### 回答2:
编写方法 sumArea(GeometricObject[] a) 的实现如下:
public static double sumArea(GeometricObject[] a) {
double sum = 0;
for (int i = 0; i < a.length; i++) {
sum += a[i].getArea();
}
return sum;
}
在上述方法中,我们定义了一个变量 sum 用来存储面积之和。然后,通过遍历数组 a,使用每个对象的 getArea() 方法获取其面积,将其加入 sum 中。最后返回 sum,即为数组中所有对象的面积之和。
编写测试程序如下:
public class TestProgram {
public static void main(String[] args) {
Circle circle1 = new Circle(5.0);
Circle circle2 = new Circle(3.0);
Rectangle rectangle1 = new Rectangle(4.0, 6.0);
Rectangle rectangle2 = new Rectangle(2.0, 8.0);
GeometricObject[] objects = {circle1, circle2, rectangle1, rectangle2};
double totalArea = sumArea(objects);
System.out.println("总面积为:" + totalArea);
}
}
在上述程序中,我们先创建了两个圆对象 circle1 和 circle2,以及两个矩形对象 rectangle1 和 rectangle2。然后,我们将这四个对象存入一个 GeometricObject 类型的数组 objects 中。
接下来,我们调用 sumArea 方法,传入 objects 数组作为参数,获取这四个对象的总面积。最后,打印输出总面积。
运行该程序,输出结果为这四个对象的总面积。
### 回答3:
GeometricObject类中应该包含获取面积的方法,比如getArea()。然后编写sumArea方法,该方法以GeometricObject数组为参数,遍历数组中的每个对象,调用其getArea()方法并累加到一个变量中,最后返回累加的结果。
下面是示例代码:
```java
public static double sumArea(GeometricObject[] a) {
double sum = 0.0;
for (GeometricObject obj : a) {
sum += obj.getArea();
}
return sum;
}
public static void main(String[] args) {
// 创建两个圆和两个矩形的数组
GeometricObject[] objects = new GeometricObject[4];
objects[0] = new Circle(3.0); // 半径为3的圆
objects[1] = new Rectangle(5.0, 6.0); // 长为5,宽为6的矩形
objects[2] = new Circle(4.0); // 半径为4的圆
objects[3] = new Rectangle(7.0, 8.0); // 长为7,宽为8的矩形
// 调用sumArea方法求总面积并输出结果
double totalArea = sumArea(objects);
System.out.println("总面积为:" + totalArea);
}
```
上述代码中,假设GeometricObject类已经定义完成并包含getArea()方法,Circle和Rectangle类是GeometricObject类的子类,分别表示圆和矩形。在编写sumArea方法时,使用for-each循环遍历数组中的对象,调用getArea()方法获取面积并累加到sum变量中。在main方法中,创建包含两个圆和两个矩形的数组,然后调用sumArea方法计算总面积并输出结果。
阅读全文