go to previous page   go to home page   go to next page

Answer:

See below.


Testing Class

Here is Forest along with a testing class.

// Forest.java
//
public class Forest
{
  // instance variables
  private Tree tree0=null, tree1=null, tree2=null, tree3=null;
  
  // methods
  public void setTree( int treeNum, Tree tree )
  {
    if      ( treeNum == 0 )  tree0 = tree;
    else if ( treeNum == 1  ) tree1 = tree;
    else if ( treeNum == 2  ) tree2 = tree;
    else if ( treeNum == 3  ) tree3 = tree;
  }
  
  public Tree getTree( int treeNum )
  {
    if      ( treeNum == 0  ) return tree0;
    else if ( treeNum == 1  ) return tree1;
    else if ( treeNum == 2  ) return tree2;
    else if ( treeNum == 3  ) return tree3;
    else return null;
  }
  
  // build a string
  public String toString()
  {
    if ( tree0==null && tree1==null && tree2==null && tree3==null ) 
      return "No Trees in Forest";
    
    String str = "Forest:\n"; 
    if ( tree0 != null ) str += "Tree 0: " + tree0.toString() + "\n";
    if ( tree1 != null ) str += "Tree 1: " + tree1.toString() + "\n";
    if ( tree2 != null ) str += "Tree 2: " + tree2.toString() + "\n";
    if ( tree3 != null ) str += "Tree 3: " + tree3.toString() + "\n";
   
    return str;
  }
}  

To compile you will need ForestTester.java, Forest.java, Tree.java, Cone.java, and Cylinder.java all in the same directory.

public class ForestTester
{
  public static void main( String[] args )
  {
     Forest myForest = new Forest();
    
     double trunkR = 1.0, trunkH = 1.0, branchR = 8.0, branchH = 10.0 ;
     Tree tree = new Tree( trunkH, trunkR, branchH, branchR, 1, 2, 3  );
     myForest.setTree( 0, tree );

     trunkR = 1.4; trunkH = 2.0; branchR = 15.0; branchH = 30.0 ;
     tree = new Tree( trunkH, trunkR, branchH, branchR, 5, 8, 0  );
     myForest.setTree( 2, tree );
    
     System.out.println( myForest );
  }
}

The output should be:

Forest:
Tree 0: Height: 11.0, width: 8.0, area: 529.2012441663949, volume: 673.3480254194124
Tree 2: Height: 32.0, width: 15.0, area: 2296.2381209719183, volume: 7080.898513779107

QUESTION 16:

Does toString() need to be explicitly included in the statement

if ( tree0 != null ) str += "Tree 0: " + tree0.toString() + "\n";

go to previous page   go to home page   go to next page