二、结构化编程方法
在以下的程序代码中,我们添加了2个方法,分别实现球体表面积与体积的计算,并通过相应的类控制数值的输出格式。
import java.text.DecimalFormat;
class Sphere
{
// Computes the volume of a sphere with radius r.
private static double volume(double r)
{
return 4.0 / 3.0 * Math.PI * r * r * r;
}
// Computes the surface area of a sphere with radius r.
private static double surfaceArea(double r)
{
return 4.0 * Math.PI * r * r;
}
public static void main(String[] args)
{
EasyReader console = new EasyReader();
System.out.print("Enter the radius: ");
double radius = console.readDouble();
DecimalFormat f3 = new DecimalFormat("0.000");
System.out.println(); // displays a blank line
System.out.println("Radius = " + f3.format(radius));
System.out.println("Volume = " + f3.format(volume(radius)));
System.out.println("Surface area = " + f3.format(surfaceArea(radius)));
System.out.println();
}
}
以下是输出结果。

上述经过修改后的程序,其输出结果看起来漂亮多了,但它仍只是一个勉强可以通过的设计程序。该程序采用了结构化编程的风格,并不是面向对象编程。首先,计算过程仍与用户界面实现在同一个类中。另外,对于不同的用户界面,不能体现出面向对象编程的好处,即不能重用这些计算过程。
