<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      GuessGame兩個版本的區別

      GuessGame 兩個版本的區別分析


      一、控制臺輸出

      控制臺版本的ConsoleGame是最基礎、最傳統的程序交互方式,它通過標準的輸入輸出流與用戶進行通信。

      • 實現方式
        • 輸入:使用java.util.Scanner類來讀取用戶在控制臺(命令行窗口)中鍵入的文本。
        • 輸出:使用 System.out.print()和 System.out.println()方法將文本直接打印到控制臺上。
      • 代碼特點
        // ConsoleGame.java
        @Override
        public void print(String text) {
            System.out.print(text); // 直接輸出到控制臺
        }
        @Override
        public void println(String text) {
            System.out.println(text); // 輸出并換行
        }
        @Override
        public int nextInt() {
            return scanner.nextInt(); // 從控制臺讀取整數
        }
        
      • 用戶體驗
        • 界面為純文本,沒有圖形元素。

        • 交互方式是“命令-響應”式,用戶需要按照提示輸入。

      image


      二、圖形界面

      圖形界面版本GUIGame使用 Swing 組件庫,通過彈出的對話框與用戶進行交互,提供了更友好、舒適的用戶體驗。

      • 實現方式
        • 輸入:使用 javax.swing.JOptionPane.showInputDialog() 方法彈出一個輸入對話框,用戶可以在文本框中輸入內容。
        • 輸出:使用 javax.swing.JOptionPane.showMessageDialog() 方法彈出一個消息對話框,向用戶展示信息。
      • 代碼特點
        // GUIGame.java
        @Override
        public void print(String text) {
            // 在對話框模式中,簡單的print可以被忽略或整合到nextInt的提示中
        }
        @Override
        public void println(String text) {
            // 彈出消息對話框顯示信息
            JOptionPane.showMessageDialog(null, text);
        }
        @Override
        public int nextInt() {
            // 彈出輸入對話框獲取用戶輸入
            String input = JOptionPane.showInputDialog(null, "請輸入數字(0~9):");
            try {
                return Integer.parseInt(input);
            } catch (NumberFormatException e) {
                return -1; // 輸入無效時返回一個特定值
            }
        }
        
      • 用戶體驗
        • 界面是圖形化的窗口,包含按鈕、文本框等元素。
        • 交互方式是點擊和填寫,對普通用戶更直觀、更友好。
        • 對話框是模態的,會強制用戶處理當前任務,直到完成(猜對)。
          image
          image

      2.1 抽象類的好處

      在這個例子中,抽象類 GuessGame 是設計的核心,它帶來了以下關鍵好處:

      1. 定義通用框架(模板方法模式)

        GuessGame 的 go() 方法定義了猜數字游戲的固定流程:生成隨機數 -> 循環獲取用戶輸入 -> 判斷結果 -> 結束游戲。這個**算

      法骨架**是固定不變的,而與用戶交互的具體步驟(如何輸入、如何輸出)則被設計成抽象方法,由子類去實現。

      1. 實現代碼復用

        游戲的核心邏輯(隨機數生成、循環比較、勝負判斷)只寫在 GuessGame 中一次。如果沒有抽象類,那么 ConsoleGame和

      GUIGame 就需要各自實現一遍完全相同的游戲邏輯,造成代碼冗余,當需要實現的東西太多,還會有可能造成漏寫。

      1. 支持多態和擴展性

        我們可以這樣寫代碼:

        GuessGame game = new ConsoleGame(); // 使用控制臺版本
        // GuessGame game = new GUIGame();   // 使用圖形界面版本
        game.go();
        

        這就是多態。程序的主體邏輯可以完全不知道具體是哪個版本,只管調用 go() 方法即可,隱藏了背后的邏輯。未來如果想實現其他版本,主程序幾乎不需要修改。


      三、兩者對比

      對比維度 ConsoleGame (控制臺版) GUIGame (圖形界面版)
      交互媒介 文本流 圖形窗口
      依賴庫 java.util.Scanner javax.swing.JOptionPane
      輸入方式 scanner.nextInt() JOptionPane.showInputDialog()
      輸出方式 System.out.println() JOptionPane.showMessageDialog()
      用戶體驗 簡潔、快速,適合技術用戶 友好、直觀,適合普通用戶
      實現復雜度 極低 低(Swing封裝了復雜性)

      四、總結

      GuessGame 的兩個版本(ConsoleGame 和 GUIGame),是面向對象設計思想的絕佳體現。它們雖然在外觀和交互方式上截然不同,但其背后的游戲靈魂(核心邏輯)是完全一致的
      這種設計的重點在于抽象方法。GuessGame抽象類成功地將“不變”的游戲邏輯與“多變”的界面實現分離開來,實現了多態。

      posted @ 2025-10-25 23:57  穗和  閱讀(3)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 青青国产揄拍视频| 九九热在线视频观看最新| 无码高潮爽到爆的喷水视频app | 国产精品点击进入在线影院高清| 陆河县| 内射合集对白在线| 99热精品毛片全部国产无缓冲 | 九九九国产| 师宗县| 亚洲成人av在线系列| av天堂久久精品影音先锋| 亚洲中文字幕有综合久久| a级黑人大硬长爽猛出猛进| 中年国产丰满熟女乱子正在播放| 福利视频一区二区在线| 国内熟女中文字幕第一页| 亚洲人成人网站色www| 国产精品久久久久久久久久久久| 亚洲国产午夜精品福利| 九九热视频在线免费观看| 成在线人免费| 日韩精品亚洲专区在线观看| 国产不卡一区二区在线| 日韩人妻无码一区二区三区99| 成人网站免费观看永久视频下载| 饥渴的熟妇张开腿呻吟视频| 国产亚洲精品aaaa片app| 欧美日本在线一区二区三区| 国产寡妇偷人在线观看| 久久精品夜夜夜夜夜久久| 亚洲精品一区二区三区大桥未久| 精品人妻伦一二三区久久| 国产蜜臀在线一区二区三区| 欧美又黄又大又爽a片三年片| 40岁大乳的熟妇在线观看| 99亚洲男女激情在线观看| 五月开心六月丁香综合色啪| 日本一卡二卡不卡视频查询| 一区二区三区四区黄色片| 国产青榴视频在线观看| 动漫av网站免费观看|