首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

UML 類圖設計 Java 應用實戰(二):CGObject 子類實現與主程式架構

     編輯:Java 相關知識

承接上篇:CGObject 三大具體子類

本篇完成 CGPoint、CGBox、CGText 三個具體類的 UML 設計與 Java 實現,並串聯主程式 CDrawApp。

CGPoint:點狀物件

UML 關鍵點:繼承抽象類 CGObject,無新增屬性,僅實現抽象方法 display()、describe() 及建構子。


// Java 實現要點
public class CGPoint extends CGObject {
    public CGPoint(Point loc, char ch) {
        super(loc, ch); // 呼叫父類建構子(雖父類為 abstract,但可有建構子供子類調用)
    }
    @Override public void display(PrintCGrid grid) { /* 在網格繪製單字符 */ }
    @Override public void describe() { System.out.println("Point at " + location); }
}

CGBox:矩形物件

新增屬性:width、height(矩形寬高)。


public class CGBox extends CGObject {
    private int width, height;
    public CGBox(Point loc, char ch, int w, int h) {
        super(loc, ch);
        this.width = w; this.height = h;
    }
    @Override public void display(PrintCGrid grid) {
        // 雙重迴圈在網格繪製矩形邊框/填充
    }
    @Override public void describe() { /* 輸出矩形資訊 */ }
}

CGText:文字串物件

新增屬性:String text。


public class CGText extends CGObject {
    private String text;
    public CGText(Point loc, char ch, String text) {
        super(loc, ch); // ch 可作為游標符號
        this.text = text;
    }
    @Override public void display(PrintCGrid grid) {
        // 逐字符在網格水平繪製
    }
    @Override public void describe() { /* 輸出文字內容 */ }
}

類別關係總覽:繼承體系與關聯

CGObject 繼承體系與關聯圖

  • CGObject(抽象,斜體類名)→ 三子類 CGPoint、CGBox、CGText(實線空心三角箭頭)。
  • CGObject 含 Point location 關聯(虛線箭頭,多重性 1)。
  • PrintCGrid 擁有 CGObject[] displayList(聚合關係,菱形空心,多重性 0..*)。

主程式 CDrawApp:內部類模式

CDrawApp 為啟動類,包含 main(),內部定義 CDraw 類封裝應用邏輯(菜單迴圈、用戶輸入處理、網格操作)。

UML 表示:外部類 CDrawApp 與內部類 CDraw 為「關聯」關係,外部類標記「十字交叉圓圈」,箭頭指向內部類。


public class CDrawApp {
    public static void main(String[] args) {
        new CDraw().run(); // 建立內部類實例並啟動
    }

    // 內部類(非 static,隱含外部類引用)
    class CDraw {
        private BorderedPrintCGrid grid; // 具體網格實現
        public void run() { /* 主迴圈:顯示菜單、讀取輸入、執行對應操作 */ }
        // ... 具體操作方法:addPoint(), addBox(), addText(), showGrid() ...
    }
}

完整類別關係圖

主程式與各類關係總圖

編譯與運行指令

  1. 依序編譯 10 個類別(Point、CGrid、CGObject、PrintCGrid、BorderedPrintCGrid、CGPoint、CGBox、CGText、CDrawApp(含內部類))。
  2. 執行:java CDrawApp。
  3. 操作提示:選擇新增點/框/文字後,必須選擇 Show Grid 才會顯示網格與繪圖結果。

方法論總結

本實戰展示:

  • UML 類圖標準化建模(繼承、關聯、聚合、內部類表示)。
  • 抽象類定義協議,具體類實現多態行為。
  • 模型驅動代碼:類圖 → Java 骨架 → 填充邏輯。
  • 文檔與代碼同步演進,利於團隊協作與維護。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved