2011-11-13 7 views
1

Je dois construire une méthode pour trouver la somme des zones des rectangles dans un ArrayList donné de rectangles.Accéder aux propriétés d'objets dans une ArrayList

public class Homework { 
public static void main(String[] args) { 
    ArrayList<Rectangle> test = new ArrayList<Rectangle>(); 
    test.add(new Rectangle(10, 20, 30, 40)); 
    test.add(new Rectangle(10, 10, 30, 40)); 
    test.add(new Rectangle(20, 20, 40, 50)); 
    test.add(new Rectangle(20, 10, 50, 30)); 
    System.out.println(areaSum(test)); 
    System.out.println("Expected: 5900.0"); 
    System.out.println(areaAverage(test)); 
    System.out.println("Expected: 1475.0"); 
} 

public static double areaSum(ArrayList<Rectangle> rects){ 
    //work goes here 
} 

Ce que j'ai à ce jour est:

public static double areaSum(ArrayList<Rectangle> rects){ 
    double totalArea = 0; 
    for (Rectangle r : rects) { 
     double area = (x + width) * (y + height); 
     totalArea = totalArea + area; 
    } 
    return totalArea; 
} 

Comment puis-je tirer les dimensions des rectangles de la ArrayList construit par le bloc de testeur? Je suis un peu nouveau sur le terrain, c'est un travail à faire et je n'arrive pas à le comprendre.

Répondre

1

ligne de changement qui calcule la zone à:

double area = r.getWidth() * r.getHeight();

1

area = width * height (pas ce que vous avez). Corrigez votre calcul.

En outre, pour plus "leetness", utiliser cette ligne:

totalArea += r.getWidth() * r.getHeight(); 
Questions connexes