import javax.swing.*; import java.text.*; public class TestShape3D { public static void main(String[] args) { DecimalFormat d2 = new DecimalFormat ("0.00"); Sphere [] s = new Sphere[3]; s[0] = new Sphere(); s[1] = new Sphere(10); s[2] = new Sphere(20,5,6,7); for (int i=0; i<3; i++) System.out.println(s[i].getClassName()+" "+ s[i]+ //implicit toString() " A="+d2.format(s[i].getArea())+ " V="+d2.format(s[i].getVolume())+" "+ "("+s[i].getCenter()[0]+" "+ +s[i].getCenter()[1]+" "+ +s[i].getCenter()[2]+") "+ " #spheres="+Sphere.getNumberSpheres()+" "+ " #Shape3Ds="+Shape3D.getNumberShapes()); System.out.println(); Cone [] c = new Cone[3]; c[0] = new Cone(); c[1] = new Cone(10,20); c[2] = new Cone(30,40,5,6,7); for (int i=0; i<3; i++) System.out.println(c[i].getClassName()+" "+ c[i]+ " A="+d2.format(c[i].getArea())+ " V="+d2.format(c[i].getVolume())+" "+ "("+c[i].getCenter()[0]+" "+ +c[i].getCenter()[1]+" "+ +c[i].getCenter()[2]+") "+ " #cones="+Cone.getNumberCones()+" "+ " #Shape3Ds="+Shape3D.getNumberShapes()); System.out.println(); Cylinder [] y = new Cylinder[3]; y[0] = new Cylinder(); y[1] = new Cylinder(10,20); y[2] = new Cylinder(30,40,5,6,7); for (int i=0; i<3; i++) System.out.println(y[i].getClassName()+" "+ y[i]+ " A="+d2.format(y[i].getArea())+ " V="+d2.format(y[i].getVolume())+" "+ "("+y[i].getCenter()[0]+" "+ +y[i].getCenter()[1]+" "+ +y[i].getCenter()[2]+") "+ " #cylinders="+Cylinder.getNumberCylinders()+" "+ " #Shape3Ds="+Shape3D.getNumberShapes()); //polymorphism String input = JOptionPane.showInputDialog( "Enter number of Shape3D objects", "10" ); int N = Integer.parseInt( input ); Shape3D [] shapes = new Shape3D[N]; //superclass references //randomly sixed and positioned 3D objects: for (int i=0; i