see methods: - public void plantFLowers( int n ) - public void animate( int numFrames ) - public void driftBalloons( ) * with old style loop - public void driftBalloons( ) * with new style loop
package cs1.ParkApp; import cs1.app.*; import java.util.ArrayList; public class Park { // the features (data members) private ArrayList<Balloon> balloonsList; private ArrayList<Flower> flowersList; // the constructor(s) public Park() { // create empty collections of balloons and flowers balloonsList = new ArrayList<Balloon>(); flowersList = new ArrayList<Flower>(); } // the behaviors (methods) public void add( Balloon balloon ) { balloonsList.add( balloon ); } public void plantFlowers( int n ) { for (int count = 1 ; count <= n ; count = count + 1) { String color = canvas.getRandomColor( ); Flower flower = new Flower( color ); flowersList.add( flower ); } } public void animate( int numFrames ) { for (int count = 1 ; count <= numFrames ; count = count + 1) { canvas.clear(); driftBalloons(); // make all ballons drift a bit spinFlowers(); // make all flowers spin a bit canvas.sleep( 0.1 ); } } public void driftBalloons( ) { // go through all balloons one index at a time for ( int i = 0 ; i < balloonsList.size() ; i++ ) { Balloon balloon = balloonsList.get( i ); // get current balloon double dx = canvas.getRandomDouble( -3, 3 ); // pick 2 random values double dy = -1; balloon.drift( dx, dy ); // ask balloon to drift a bit balloon.draw(); // ask balloon to draw itself } } // version with enhanced for-loop public void driftBalloons( ) { // go through all balloons directly, without index for ( Balloon balloon : balloonsList ) // get current balloon automatically { double dx = canvas.getRandomDouble( -3, 3 ); // pick 2 random values double dy = -1; balloon.drift( dx, dy ); // ask balloon to drift a bit balloon.draw(); // ask balloon to draw itself } } public void spinFlowers( ) { // go through all flowers one index at a time for ( int i = 0 ; i < flowersList.size() ; i++ ) { Flower flower = flowersList.get( i ); // get current flower flower.spin( ); // ask flower to spin a bit flower.draw( ); // ask flower to draw itself } } // version with enhanced for-loop public void spinFlowers( ) { // go through all flowers directly, without index for ( Flower flower : flowersList ) // get current flower automatically { flower.spin( ); // ask flower to spin a bit flower.draw( ); // ask flower to draw itself } } }