Java高效编程之四【C语言结构的替代】

本章节可以跳过,但是【二十一】是非常有价值的

十九、用类代替结构

坚持以包含私有域和公有访问方法(accessor method)的类。Java平台中有几个类违反了“公有类不应该直接暴露数据域”的告诫,比如,java.awt包中的Point和Dimension类。

二十、用类层次代替联合

子类型化可以定义单个数据类型,并且可以定义不同类型的对象。如下面的例子:

abstract class Shape { 
abstract double area(); 
} 
class Circle extends Shape { 
final double radius; 
Circle(double radius) { this.radius = radius; } 
double area() { return Math.PI * radius*radius; } 
} 
class Rectangle extends Shape { 
final double length; 
final double width; 
Rectangle(double length, double width) { 
this.length = length; 
this.width = width; 
} 
double area() { return length * width; } 
} 

 类层次的另一个好处是代码非常简洁明了,如上所示。

posted @ 2014-04-22 16:13  九天高远  阅读(205)  评论(0编辑  收藏  举报