我有一個界面
public interface GeometricObject {
public String getInfo();
}
我有 2 個類,它們實作了上述介面。
public class Circle implements GeometricObject {
@Override
public String getInfo() {
return "Circle[center,radius]";
}
}
public class Triangle implements GeometricObject {
@Override
public String getInfo() {
return "Triangle[p1,p2,p3]";
}
}
現在我有這個類來顯示所有資訊:
public class shapeUtils{
public String printInfo(List<GeometricObject> shapes) {
//code here
}
}
我如何在該串列的所有實作中呼叫該方法
例如
Circle:
Circle[(1,2),r=3]
Circle[(5,6),r=2]
Triangle:
Triangle[(1,2),(2,3),(3,0)]
Triangle[(-1,-3),(-5,3),(0,0)]
uj5u.com熱心網友回復:
就叫它
for (GeometricObject shp : shapes) {
System.out.println (shp.getInfo());
}
uj5u.com熱心網友回復:
我想要更簡單。
shapes.forEach(shape -> System.out.println(shape.getInfo()));
uj5u.com熱心網友回復:
首先,您必須將所需的欄位添加到形狀中。例如,在三角形中,您需要 p1、p2、p3。如果您想列印正確的值,它們必須是類的一部分。
例如:
public class Circle implements GeometricObject {
private double center;
private double radius;
@Override
public String getInfo() {
return "Circle[ " this.center ", " this.radius " ]";
}
// Getters and setters
}
你對所有的形狀都做同樣的事情。
你可以用這樣的物件填充串列:
java.util.List<GeometricObject> shapes = new ArrayList<>();
Circle circle = new Circle(); // Initialize it
circle.setCenter(2); // Set the values
circle.setRadius(2);
shapes.add(circle); // Add it to the list
// Add some more objects into the list...
// Print them:
for (GeometricObject shape : shapes) {
System.out.println(shape.getInfo());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360825.html
