1  /**
  2     This program demonstrates the measurable BankAccount and Country classes.
  3  */
  4  public class MeasurableDemo
  5  {
  6     public static void main(String[] args)
  7     {
  8        Measurable[] accounts = new Measurable[3];
  9        accounts[0] = new BankAccount(0);
 10        accounts[1] = new BankAccount(10000);
 11        accounts[2] = new BankAccount(2000);
 12  
 13        System.out.println("Average balance: " 
 14           + average(accounts));
 15  
 16        Measurable[] countries = new Measurable[3];
 17        countries[0] = new Country("Uruguay", 176220);
 18        countries[1] = new Country("Thailand", 514000);
 19        countries[2] = new Country("Belgium", 30510);
 20  
 21        System.out.println("Average area: " 
 22           + average(countries));
 23     }
 24  
 25     /**
 26        Computes the average of the measures of the given objects.
 27        @param objs an array of Measurable objects
 28        @return the average of the measures
 29     */
 30     public static double average(Measurable[] objs)
 31     {
 32        if (objs.length == 0) { return 0; }
 33        double sum = 0;
 34        for (Measurable obj : objs)
 35        {
 36           sum = sum + obj.getMeasure();
 37        }
 38        return sum / objs.length;
 39     }
 40  }