あなたのコードはJava構文ではほぼ正しいように見えますが、Javaの規約は変数とメソッドに小文字の最初の文字を使用するため、スタイルの変更が必要です。そして、他のポスターは、配列を作成するための欠落した「新しいArrayList」を指摘しています。
問題はオブジェクト指向設計の観点から、ダブル[]を使用してと異なる情報を保持することです形状が良いデザインではありません。私はあなたが欲しいと思い、ArrayListの代わりにShapeInfoのArrayListをダブル[]。 ShapeInfoは、さまざまなクラスで実装できるインターフェイスです。このようなことで、各シェイプのさまざまな情報パラメータを持つことができるだけでなく、ループで使用できるすべてのシェイプの共通メソッド(getSummary)を持つことができます。
import java.util.ArrayList;
import java.util.List;
public class Shapes {
private static List<ShapeInfo> shapes;
public static void main(String[] args) {
shapes = new ArrayList<>();
ShapeInfo info = new CircleInfo(1, 2, 3);
shapes.add(info);
// Check what's there
for (ShapeInfo shape : shapes) {
System.out.println(shape.getSummary());
}
}
}
interface ShapeInfo {
String getSummary();
}
class CircleInfo implements ShapeInfo {
private double centreX, centreY, radius;
public CircleInfo(double centreX, double centreY, double radius) {
this.centreX = centreX;
this.centreY = centreY;
this.radius = radius;
}
@Override
public String getSummary() {
return "Centre is at (" + centreX + "," + centreY + ") and radius is " + radius;
}
}
質問:あなたは何をしますか? – Tunaki
*できるかどうか知りたい場合は、コードをコンパイルしてエラーが発生するかどうか確認してください。 – azurefrog
私はさまざまな図形についての情報を含む配列のリストを持っていると思います。例えば、一辺の長さが10cmの正方形で、その周囲は40cmで、面積は100cmです – Rm45