您正在使用一个图形应用程序,其中包含多个不同的形状。给定的代码声明了一个具有抽象区域的Shape基类()方法和一个width属性。您需要创建两个Shape子类Square和Circle,它们使用各自的构造函数初始化width属性。并定义它们的区域()方法。区域Square类的()应输出正方形的面积(宽度的平方),而对于Circle,它应该输出给定圆的面积(PIwidthwidth)。main中的代码使用给定的用户输入创建两个对象,并调用area()方法。
我已经开始写一些代码,但它不工作,我想我犯了不止一个错误。
import java.util.Scanner;
abstract class Shape {
int width;
abstract void area();
}
//your code goes here
class Square extends Shape {
int width = x;
Square() {
int area(){
area = x*x;
}
}
}
class Circle extends Shape {
int width = (double) y;
Circle(){
double area() {
area = Math.PI*y*y;
}
}
}
public class Program {
public static void main(String[ ] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
Square a = new Square(x);
Circle b = new Circle(y);
a.area();
b.area();
}
}
1条答案
按热度按时间sg3maiej1#
您在构造函数中编写了一个函数。这是无效的,您应该看到一个语法错误...
我假设你也想要main方法中给出的构造函数的参数,并且你需要从你的area函数中得到
return
,因为它不是void,至少,可能不应该是;你需要在抽象类中修改abstract void area();
那么您需要在main方法中使用
System.out.println (a.area())
。执行圆圈我将留给你。
更多信息-