Java:使用方法从ArrayList获取值

时间:2015-10-06 23:47:24

标签: java arraylist

我需要使用类内部的方法从主区域内的ArrayList获取值。

我已经搜索了高低的答案,我不能为我的生活弄清楚。

我需要ArrayList" objectList"要通过minArea函数运行。我只是不知道如何从minArea / maxArea函数引用ArrayList中的值。我当然可以弄清楚如何自己完成实际的功能,但我只需要知道如何在...内引用Circle和Square对象。

public static class geometricObject {
    String color = "white";
    public String fillColor() {
        return color;
    }

    public double minArea() {
        return 0;
    }

    public double maxArea() {
        return 0;
    }
}

public static class Circle extends geometricObject {
    public static double radius;
    public Circle(double radius) {
        this.radius = radius;
    }
    public double getArea() {
        double ans = Math.PI * (radius * radius);
        return ans;
    }
}

public static class Square extends geometricObject {
    public double width;        
    public Square(double width) {
        this.width = width;
    }
    public double getArea() {
        double ans = width * width;
        return ans;
    }
}

public static void main(String[] args) {

    ArrayList<geometricObject> objectList = new ArrayList<geometricObject>();
    objectList.add(new Circle(8));
    objectList.add(new Circle(3));
    objectList.add(new Square(5));
    objectList.add(new Square(4));
    objectList.add(new Square(3));
    int i = 5;
    System.out.println(objectList..minArea());
}

2 个答案:

答案 0 :(得分:0)

试试这个:

ArrayList<geometricObject> objectList;
public static void main(String[] args) {

    objectList = new ArrayList<geometricObject>();
    objectList.add(new Circle(8));
    objectList.add(new Circle(3));
    objectList.add(new Square(5));
    objectList.add(new Square(4));
    objectList.add(new Square(3));
    int i = 5;
    System.out.println(objectList..minArea());

}

我做了什么:我在调用方法之前放置了未定义的变量,并在main中声明了它。但是,在您的情况下,您可能希望放置未定义的变量:

ArrayList<geometricObject> objectList;

在所有方法之前。

答案 1 :(得分:0)

您可以执行以下操作:

for (i=0; i<5; i++) {
    geomtericObject g = objectList.get(i);
    System.out.println(g.minArea());
    System.out.println(g.getArea());
}

或远离使用索引:

foreach (geomtericObject g : objectList) {
    System.out.println(g.minArea());
    System.out.println(g.getArea());
}