上面这个程序的接口部分 和 实施部分 与 先前博文中的例子 保持 一致。
在程序部分
创建了 两个Fraction类型的物件successFraction 和 failureFraction。物件successFraction 用来表示 及格比例;物件failureFraction 用来表示 不及格比例。
这两个语句 对 物件successFraction 采取了 setNumerator 和 setDenominator这两项措施。setNumerator 和 setDenominator这两项措施所附带的参数 分别 是 8 和 10。setNumerator这项措施 将 属于物件successFraction的个体变量numerator的值 设定为 8;而 setDenominator这项措施 将 属于物件successFraction的个体变量denominator的值 设定为 10。于是 物件successFraction所代表的及格比例 就 被设定为 8/10了。
这两个语句 对 物价failureFraction 采取了 setNumerator 和 setDenominator这两项措施。setNumerator 和 setDenominator这两项措施所附带的参数 分别 是 2 和 10。
setNumerator这项措施 将 属于物件failureFraction的个体变量numerator的值 设定为2;而 setDenominator这项措施 将 属于物件failureFraction的个体变量denominator的值 设定为 10。于是 物件failureFraction所代表的不及格比例 就 被设定为 2/10了。
接下来的
将 “及格的比例为:”的字样 显示 在屏幕上。
这个语句 对 物件successFraction 采取了 print这项措施,将 属于物件successFraction的个体变量numerator 和 denominator的值 连同 中间的斜杠 一起 显示 在屏幕上。
会 在屏幕上 显示出 “不及格的比例为:”的字样。
这个语句 对 物件failureFraction 采取了 print这项措施,将 属于物件failureFraction的个体变量numerator、denominator的值 和 中间的斜杠 一起 显示 在屏幕上。
最后的
分别 对 物件successFraction 和 failureFraction 采取了 release这项措施,将 successFraction 和 failureFraction这两个物件所占用的内存空间 腾空。
运行 这个程序 可以得到 这样的结果:
这个程序当中的successFraction 和 failureFraction这两个物件 都属于 Fraction这类事物,于是 这两个物件各自 都有 属于它们自己的个体变量numerator 和 denominator,这 属于 哲学上的共性。属于successFraction 和 failureFraction这两个物件的个体变量numerator 不是 同一个变量;同样 属于这两个物件的个体变量denominator 也不是 同一个变量。因此 对 这两个物件 采取 不同的措施 就会使 这两个物件的状态 发生 不同的变化,也就是说 属于这两个物件的个体变量 会发生 不同的变化,这 属于 哲学中所说的个性。