1) 创建Java工程。 2) 创建一个Shapes接口,该接口包含方法getArea()、getPerimeter()。 3) 创建一个类Coordinates,该类包含属性:座标x,y。 4) 通过继承Coordinates并实现Shapes接口,分别定义并实现矩形类Rect、三角形类Triangle,和圆类Circle。 5) 用上述类和接口实现多态,即通过Shapes接口,调用上述三个图形类中重写的getArea()、getPerimeter()方法,计算出各图形对象的相应的面积与周长。 6) 运行Java工程,测试代码是否正确,如不正确调试程序
时间: 2023-02-12 22:52:22 浏览: 162
1) 使用 Eclipse 或 IntelliJ IDEA 等 IDE 创建一个新的 Java 工程。
2) 在工程中创建一个名为 Shapes 的接口,并在该接口中定义 getArea() 和 getPerimeter() 两个方法。
3) 在工程中创建一个名为 Coordinates 的类,该类包含两个属性:x 座标和 y 座标。
4) 创建 Rect、Triangle、Circle 三个类,分别继承 Coordinates 类并实现 Shapes 接口,在这三个类中重写 getArea() 和 getPerimeter() 方法。
5) 创建一个新的类来测试多态性,在该类中创建多个 Shapes 类型的对象,并调用 getArea() 和 getPerimeter() 方法计算出各图形对象的相应面积和周长。
6) 运行工程并检查结果,如果结果不正确,请调试代码。
相关问题
请设计并编写一个同时满足下列所有需求的类。 (1)该类的类名为Square,其包名为oop.core,该类可以通过import语句被其他包中的类所访问到,该类继承了第1题中的抽象类Shapes; (2)该类有一个构造方法,该构造方法含有两个int型输入参数,参数名称分别为width,height,该构造方法通过super关键字实现了对其父类成员变量的初始化; (3)该类对其父类的getArea方法进行了实现,要求返回面积,即计算width* height的值; (4)该类对其父类的getPerimeter方法进行了实现,要求返回周长,即2*(width+height)的值。
package oop.core;
public class Square extends Shapes {
private int width;
private int height;
public Square(int width, int height) {
super(width, height);
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return 2 * (width + height);
}
}
2.求形状面积周长(25分) 设计接口 Shape,其中的 getarea方法用于求一个形状的面积, getperimeter 求一个形状的周长。(5分) 用矩形类 Rectangle和圆类 Circle实现上述接口,属性分别包括:长 length 及半径 radius:构造方法为各自的属性赋值。(10分) 设计一个Pen类,其中有一个类方法show,传递一个接口回调的 Shape变量 的周长和面积。(5分) 在主类Test中生成一个 Shape接口变量sh,分别回调 Rectangle和 Circle 用show方法输出各自的周长和面积的信息。(5分)
好的,以下是代码实现:
```python
# 定义形状接口
class Shape:
def getarea(self):
pass
def getperimeter(self):
pass
# 矩形类
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def getarea(self):
return self.length * self.width
def getperimeter(self):
return 2 * (self.length + self.width)
# 圆类
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def getarea(self):
return 3.14 * self.radius * self.radius
def getperimeter(self):
return 2 * 3.14 * self.radius
# Pen类
class Pen:
@classmethod
def show(cls, shape):
print("面积为:", shape.getarea())
print("周长为:", shape.getperimeter())
# 主类Test
if __name__ == '__main__':
r = Rectangle(4, 5)
c = Circle(6)
shapes = [r, c]
for shape in shapes:
Pen.show(shape)
```
输出结果为:
```
面积为: 20
周长为: 18
面积为: 113.04
周长为: 37.68
```
阅读全文