Depends on the application. But to be useful, a Tree should at least have getters.
Here is a Tree with getter methods filled in.
// Tree.java
//
public class Tree
{
// instance variables
private double x, y, z;
private Cone branches;
private Cylinder trunk;
// constructor
public Tree( double trHeight, double trRad, double brHeight, double brRad, double x, double y, double z)
{
trunk = new Cylinder( trHeight, trRad );
branches = new Cone( brHeight, brRad );
this.x = x; this.y = y; this.z = z;
}
// methods
public String toString()
{
double totalHeight = branches.getHeight() + trunk.getHeight();
double width = branches.getRadius();
return "Tree. Height: " + totalHeight + ", width: " + width +
", area: " + area() + ", volume: " + volume() ;
}
// more methods
public double volume()
{
// return the sum of two volumes
return trunk.volume() + branches.volume();
}
public double area()
{
// return the sum of two areas
// minus twice the area of the trunk's circular top
double total = trunk.area() + branches.area();
double rad = branches.getRadius();
double circle = Math.PI*rad*rad;
return total - 2*circle;
}
public void grow( double rate )
{
// increase all dimensions by rate
double bHeight = branches.getHeight();
branches.setHeight( bHeight*(1.0+rate) );
double bRadius = branches.getRadius();
branches.setRadius( bRadius*(1.0+rate) );
double tHeight = trunk.getHeight();
trunk.setHeight( tHeight*(1.0+rate) );
double tRadius = trunk.getRadius();
trunk.setRadius( tRadius*(1.0+rate) );
}
public double getX()
{
return x;
}
public double getY()
{
return y;
}
public double getZ()
{
return z;
}
public Cone getBranches()
{
return branches;
}
public Cylinder getTrunk()
{
return trunk;
}
}
How many trees are there in a Forest?