技术开发 频道

利用UML类图设计Java应用程序(一)

    PrintCGrid类的原代码为:

    在以上代码中,PrintCGrid声明3个变量:displayList[]、maxObjects和numObjects。这些变量都声明为proceted,从而把对它们的访问限制在一个包中和PrintCGrid的子类中。

    DisplayList[]变量是类CGObject(见以下类的介绍)的数组。但这并不意味着该数组包含作为类CGObject实例的对象。这是不可能的,因为CGObject是抽象的。把DisplayList[]声明成类CGObject的数组的目的,是允许该数组包含CGObject类的子类的对象。一般来说,如果一个变量声明成类X,那么可以把该变量赋值为X的子类的对象。

    MaxObjects变量声明成static并且final。使用static修饰符声明的变量,它们被作为一个类实例的所有对象公用,不会被每个实例复制,静态变量又成为类变量。没有被声明成静态的变量是实例变量,对作为一个类的实例的每个对象进行复制。

    Final修饰符用于把变量标识成常量。用final修饰符声明的变量必须在声明时进行初始化,不能再声明之外的任何地方赋值。MaxObjects常量初始化为100,表示可以加到displayList[]中的对象的最大数目。

    NumObjects变量用于统计加到网格的displayList[]中的对象实际数目。

    PrintCGrid有一个构造函数。该构造函数有两个参数:x和y,它们表示网格的水平和垂直方向的尺寸。构造函数调用super()方法,并把这两个变量当着变元传递过去。Super()方法是构造函数调用语句的一个例子。它以x和y作为变元调用PrintCGrid的父类(即CGrid类)的构造函数。CGrid的构造函数初始化其width和depth变量,分配grid[][]数组,并用空格给该数组元素赋值。CGrid的构造函数运行完后,PrintCGrid的构造函数继续把numObjects设置为0,并分配displayList[]数组。

    PrintCGrid提供10个访问方法。AddCGObject()方法把对象加到displayList[]数组中。DeleteCGObject()方法删除位于指定索引位置的对象。所有的后续对象都向前移动,以填充被删除对象留下的空缺。DeleteLastObject()方法通过简单地把numObjects减1来删除最后一个对象。

    GetNumObjects方法返回displayList[]中的对象数目。GetObject方法返回displayList[]中指定位置的对象。clearGrid()方法通过把numObjects设置为0去清除所有对象。

    DrawGrid()方法使用从CGrid类继承的方法清空网格,然后调用displayList[]中每个对象的display()方法。

    displayGrid[]方法在控制台窗口中显示每一行网格。它是继承的例子。Grid[][]数祖在CGrid类中定义,由PrintCGrid所继承。它由CGObject类的所有子类的drawGrid()方法和display()方法更新。PrintGrid()类用它来在控制台窗口中打印字符。

    ValueOf()方法用于displayGrid()方法中,它是String 类的静态方法。它把字符数组转换成String对象。静态方法类似于静态变量,它整体上应用于类,而不是作为类实例的各个对象使用。由于面向对象,静态方法只能访问静态变量。所有静态方法都是定局的,不能被覆盖。

    DisplayRow()方法在控制台窗口上显示一行网格,show()方法把drawGrid()和displayGrid()方法组合成一个方法。

0
相关文章