package drawing; public class circle extends Shape { private int radius; public Circle() {} public Circle(String name, String color, int radius) { super(name, color); this.radius = radius; } @Override public double getArea() { return } } }
时间: 2023-05-13 22:04:24 浏览: 210
您好,这是一个关于 Java 编程的问题,您需要在 getArea() 方法中计算并返回圆的面积,公式为 Math.PI * radius * radius。代码如下:
@Override
public double getArea() {
return Math.PI * radius * radius;
}
相关问题
请用Java语言定义三个类,父类(抽象类)GeometricObject代表几何形状,子类Circle代表圆形。具体属性和方法如下: (1)父类(抽象类)GeometricObject 属性:private String color;private String name;为它们提供getter()和setter()方法 构造方法:为color和name初始化 抽象方法:public void findArea();用于计算几何图形的面积 (2)子类:Circle 属性:private double radius;半径 为上述变量提供getter()和setter()方法 构造方法:设计构造方法为圆形的name,color和radius初始化 方法:实现findArea0方法用于计算圆形的面积并返回计算结果 (3)测试类Main 创建圆形对象("圆形","蓝色",3.2) 输出圆形的颜色和面积。
下面是Java语言的三个类的定义:
```java
// GeometricObject.java
public abstract class GeometricObject {
private String color;
private String name;
public GeometricObject(String color, String name) {
this.color = color;
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void findArea();
}
// Circle.java
public class Circle extends GeometricObject {
private double radius;
public Circle(String color, String name, double radius) {
super(color, name);
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
@Override
public void findArea() {
double area = Math.PI * radius * radius;
System.out.println(getName() + "的面积是:" + area);
}
}
// Main.java
public class Main {
public static void main(String[] args) {
Circle circle = new Circle("蓝色", "圆形", 3.2);
System.out.println("颜色:" + circle.getColor());
circle.findArea();
}
}
```
输出结果为:
```
颜色:蓝色
圆形的面积是:32.169908772759484
```
改写第1题中的Circle类,它继承自GeometricObject类并实 现Comparable接口。重写Object类中的equals方法。当两 个Circle对象半径相等时,则这两个Circle对象是相同的。 GeometricObject类的定义应该这样开始: abstract class GeometricObject { 也就是说,GeometricObject类的class前面不要有public。 Circle类的定义应该这样开始: class Circle extends GeometricObject implements Comparable<Circle> {
以下是改写后的Circle类的代码:
```java
abstract class GeometricObject {
private String color;
private boolean filled;
public GeometricObject() {
this.color = "white";
this.filled = false;
}
public GeometricObject(String color, boolean filled) {
this.color = color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public abstract double getArea();
public abstract double getPerimeter();
}
class Circle extends GeometricObject implements Comparable<Circle> {
private double radius;
public Circle() {
super();
this.radius = 1.0;
}
public Circle(double radius) {
super();
this.radius = radius;
}
public Circle(double radius, String color, boolean filled) {
super(color, filled);
this.radius = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public boolean equals(Object o) {
if (o instanceof Circle) {
Circle c = (Circle) o;
return Double.compare(radius, c.radius) == 0;
}
return false;
}
@Override
public int compareTo(Circle c) {
return Double.compare(radius, c.radius);
}
}
```
其中,重写的equals方法会判断输入的对象是否是Circle类型,然后比较两个Circle对象的半径是否相等。如果相等,则返回true,否则返回false。重写的compareTo方法是实现Comparable接口的方法,比较两个Circle对象的半径大小。如果当前对象的半径小于输入对象的半径,返回负数;如果当前对象的半径等于输入对象的半径,返回0;如果当前对象的半径大于输入对象的半径,返回正数。
阅读全文