基本上我的老师希望我们使用这种方法打印我的ArrayList中的每个形状
for (Shape shape: shapes) {
// this following is the same as: System.out.println(shape.toString());
System.out.println(shape);
}
她根本不清楚,所以我不知道我应该填写什么。如果有人知道她想解释什么,你能告诉我一个例子吗?
我不是要求为我编写代码只是想要一个例子,所以我可以理解它。
感谢大家的时间。
完整代码
import java.util.ArrayList;
public class FinalExam {
public static void main(String[] args) {
ArrayList<Shape> shapes = new ArrayList<Shape>();
Circle circle5 = new Circle();
circle5.setValues(5.0);
Rectangle square5 = new Rectangle();
square5.setValues(5.0, 5.0);
Triangle triangle5 = new Triangle();
triangle5.setValues(5.0, 5.0);
Circle circle3 = new Circle();
circle3.setValues(3.0);
Rectangle square3 = new Rectangle();
square3.setValues(3.0, 3.0);
Triangle triangle3 = new Triangle();
triangle3.setValues(3.0, 3.0);
shapes.add(circle5);
shapes.add(square5);
shapes.add(triangle5);
shapes.add(circle3);
shapes.add(square3);
shapes.add(triangle3);
}
public void printShapes() {
for (Circle element: Circle) {
// this following is the same as: System.out.println(shape.toString());
System.out.println(element);
}
}
}
圈子类
public class Circle extends Shape {
private double Radius; // To hold Radius.
// Set Radius
public void setValues(double Radius) {
this.Radius = Radius;
}
//Get Radius
public double getRadius() {
return Radius;
}
public double getArea() {
return (Math.PI * Radius *Radius);
}
@Override
public String toString() {
return "Circle" +"[Radius:" + getRadius() + "] Area:" + String.format("%.02f", getArea());
}
}
答案 0 :(得分:1)
以下是FinalExam
课程的更正版本:
public class FinalExam {
public static void main(String[] args) {
ArrayList<Shape> shapes = new ArrayList<Shape>();
// define and add shapes here
printShapes(shapes);
}
public static void printShapes(List<Shape> list) {
for (Shape shape : list) {
System.out.println(shape);
}
}
}
您的迭代语法不正确,而且我认为这两种方法都应该是static
(假设main
是静态的,并且您想要使用它)。在上面的版本中,我将形状列表传递给打印方法,但您也可以通过其他方式处理。