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

时间:2022-12-17 22:42:08

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

十九、用类代替结构

坚持以包含私有域和公有访问方法(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; }
}

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