Your code looks nearly correct in Java syntax, although needs style changes as Java convention is to use lowercase first letters for variables and methods. And other posters have pointed out the missing 'new ArrayList' to create the array.
The problem is that from an object-oriented design point of view, using double[] to hold info about different shapes is not good design. I think what you want is and ArrayList of ShapeInfo rather than an ArrayList of double[]. ShapeInfo can be an interface which can be implemented by various classes. Something like this will allow you to have different info parameters for each shape as well as having a common method (getSummary) for all shapes that can be used in loops.
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;
}
}