public?interface?Volume?{
double?PI?=?3.1415926;
//計算體積
public?double?calVolume();
//計算表面積
public?double?calArea();
}
package?com.shape;
//圓柱體
public?class?Cylinder?implements?Volume?{
private?double?Radius?;
private?double?Height;
public?Cylinder(double?Radius,?double?Height)?{
this.Radius?=?Radius;
this.Height?=?Height;
}
public?double?getRadius()?{
return?Radius;
}
public?void?setRadius(double?radius)?{
Radius?=?radius;
}
public?double?getHeight()?{
return?Height;
}
public?void?setHeight(double?height)?{
Height?=?height;
}
@Override
public?double?calVolume()?{
//?TODO?Auto-generated?method?stub
return?PI?*?Radius?*?Radius?*?Height;
}
@Override
public?double?calArea()?{
//?TODO?Auto-generated?method?stub
return?PI?*?Radius?*?Radius?*?2?+?PI?*?Radius?*?Height?*?2;
}
}
package?com.shape;
//圓錐
public?class?Cone?implements?Volume?{
private?double?Radius;
private?double?Height;
public?double?getRadius()?{
return?Radius;
}
public?void?setRadius(double?radius)?{
Radius?=?radius;
}
public?double?getHeight()?{
return?Height;
}
public?void?setHeight(double?height)?{
Height?=?height;
}
public?Cone(double?Radius,?double?Height)?{
this.Radius?=?Radius;
this.Height?=?Height;
}
//圓錐體的母線的長
public?double?getConeLine()?{
double?Line?=?Radius?*?Radius?+?Height?*?Height;
return?Math.sqrt(Line);
}
@Override
public?double?calVolume()?{
//?TODO?Auto-generated?method?stub
return?PI?*?Radius?*?Radius?*?Height?/?3;
}
@Override
public?double?calArea()?{
//?TODO?Auto-generated?method?stub
return?PI?*?Radius?*?Radius?+?PI?*?Radius?*?getConeLine();
}
}
public?class?ShapeTestDemo?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Cylinder?cy?=?new?Cylinder(3,?4);
System.out.println(cy.calVolume());
System.out.println(cy.calArea());
Cone?cone?=?new?Cone(3,?4);
System.out.println(cone.calVolume());
System.out.println(cone.getConeLine());
System.out.println(cone.calArea());
}
}