類圖用三層矩形框表示:
<<interface>>。可見性 名稱:類型 [多重性] = 預設值)。可見性 名稱(參數):回傳類型)。抽象方法斜體。可見性:+ public、- private、# protected、~ package-private。
在字符網格上繪製點、矩形、文字串。共 10 大類,本篇完成前 5 類。

-x:int、-y:int。Point()、Point(int x, int y)、Point(Point p)。getX()、setX()、add(int dx) 等。toString() 返回 "(x, y)" 格式。

#width:int、#depth:int、#grid:char[][](protected 供子類存取)。blankGrid()、fillGrid(char)、getCharFrom(Point)、setCharAt(Point, char)。Point 為關聯關係(CGrid 方法參數使用 Point)。

#location:Point、#drawCharacter:char。addToGrid(PrintCGrid)(具體)、display(PrintCGrid)(抽象)、describe()(抽象)。display()、describe()。

CGrid(實線空心三角箭頭指向父類)。#displayList:CGObject[]、#maxObjects:int (static final = 100)、#numObjects:int。super(x, y) 初始化父類,再初始化陣列與計數器。addCGObject()、deleteCGObject()、drawGrid()、displayGrid()、show() 等。displayList 宣告為 CGObject[] 實現多態:實際存儲子類實例。

PrintCGrid,新增邊框屬性:-useBorder:boolean、-borderCharacter:char、-horizEdge:String、-vertEdge:String。displayGrid():先呼叫 super.displayGrid() 再繪製邊框。
繼承鏈:CGrid ← PrintCGrid ← BorderedPrintCGrid
關聯關係:
CGrid → Point(方法參數,多重性 0..*)。PrintCGrid → CGObject(陣列元素,多重性 0..*)。