學期2024-2025-1學號20241306 《計算機基礎與程式設計》第8周學習總結
作業資訊
這個作業屬於哪個課程 | <班級的連結>(如2024-2025-1-計算機基礎與程式設計) |
---|---|
這個作業要求在哪裡 | <作業要求的連結>(如2024-2025-1計算機基礎與程式設計第8周作業) |
這個作業的目標 | 功能設計與物件導向設計,物件導向設計過程,面嚮物件語言三要素,彙編、編譯、解釋、執行 |
作業正文 |
教材學習內容總結
1.功能設計
功能設計主要關注軟體應該具備哪些功能,即軟體應該能夠做什麼。在這個階段,開發者會基於需求分析的結果,定義軟體需要實現的具體功能,並規劃這些功能如何組合以滿足使用者的整體需求。功能設計通常包括以下幾個方面:
功能定義:明確軟體需要實現的具體功能點。
流程規劃:設計實現這些功能的流程,包括使用者如何與軟體互動、軟體內部如何處理資料等。
介面設計:定義軟體對外提供的介面,包括使用者介面(UI)和與其他系統互動的介面。
功能設計的目標是確保軟體能夠滿足使用者的需求,並提供清晰、直觀的操作體驗。
2.物件導向設計
物件導向設計則是在功能設計的基礎上,進一步關注如何實現這些功能。它採用物件導向的思想和方法,將軟體分解成一系列相互協作的物件,並透過這些物件之間的互動來實現軟體的功能。物件導向設計主要包括以下幾個方面:
識別類和物件:根據功能設計的結果,識別出軟體中需要使用的類和物件,以及它們之間的關係。
定義屬性和方法:為每個類定義屬性和方法,屬性用於儲存物件的狀態資訊,方法用於描述物件的行為。
設計類之間的關係:包括繼承、組合、關聯等關係,以確保物件之間能夠正確地協作。
介面設計:定義類之間的介面,以確保物件之間的互動能夠順利進行。
物件導向設計的目標是提高軟體的可維護性、可擴充套件性和可重用性。透過將軟體分解成一系列相對獨立的物件,並定義它們之間的互動方式,可以使得軟體更加模組化、易於理解和維護。
3.物件導向設計(Object-Oriented Design, OOD)是一個迭代和逐步精化的過程,旨在將需求分析階段得到的需求轉化為具體的軟體設計。這個過程通常包括以下幾個關鍵步驟:
需求分析:
雖然需求分析不是物件導向設計的直接部分,但它是設計過程的基礎。在這個階段,需要明確軟體需要解決的問題、使用者的需求以及軟體的執行環境。
系統建模
使用面嚮物件的技術對系統進行建模,包括識別系統中的物件(類)和它們之間的關係。這通常涉及建立UML(統一建模語言)類圖來視覺化類、介面以及它們之間的關係。
識別類和物件:
在系統建模的基礎上,進一步識別出具體的類和物件。這包括確定類的屬性(描述物件狀態的資料)和方法(物件可以執行的操作)。
定義類結構和層次:
設計類的層次結構,包括基類(父類)和派生類(子類)。使用繼承機制來複用程式碼和建立類之間的邏輯關係。
建立物件之間的互動:
定義物件之間如何互動,包括訊息傳遞、方法呼叫和協作模式。這可以透過UML序列圖、活動圖或協作圖來表示。
介面設計:
定義類之間的介面,以確保物件之間的互動能夠順利進行。介面應該清晰、簡潔,並且遵循物件導向的設計原則,如單一職責原則、開閉原則等。
設計模式應用:
在計中應用設計模式,以解決常見的設計問題。設計模式是經過驗證的解決特定問題的方法模板,可以提高設計的質量和可維護性。
迭代和精化:
物件導向設計是一個迭代的過程。在設計過程中,需要不斷地回顧和精化設計,以確保它滿足需求,並且是可行的和高效的。
文件化:
將設計結果文件化,以便與團隊成員和其他利益相關者共享。設計文件應該清晰、準確地描述設計決策、類結構、物件互動和介面定義。
驗證和測試:
在設計完成後,需要進行驗證和測試,以確保設計滿足需求,並且是可實現的。這包括透過程式碼審查、單元測試、整合測試和系統測試來驗證設計的正確性和有效性。
物件導向設計的目標是建立一個清晰、模組化、可擴充套件和可維護的軟體系統。透過遵循物件導向的設計原則和最佳實踐,可以開發出高質量的軟體產品,滿足使用者的需求,並適應未來的變化和發展。
4.面嚮物件語言的三要素通常指的是封裝性(Encapsulation)、繼承性(Inheritance)和多型性(Polymorphism)。這三個要素是物件導向程式語言區別於傳統結構化程式語言的重要標誌,也是物件導向程式設計思想的核心。
封裝性(Encapsulation):
封裝是指將物件的屬性(資料)和行為(方法)結合在一起,形成一個獨立的小單元,並對物件的資料進行隱藏和保護。
透過封裝,可以實現物件內部資料的私有化和對外部訪問的控制,從而增強程式的安全性和可維護性。
封裝性使得物件內部的實現細節對外部不可見,外部只能透過物件提供的介面來訪問和操作物件的資料和行為。
繼承性(Inheritance):
繼承是指子類(派生類)能夠繼承父類(基類)的屬性和方法,從而實現程式碼的重用和擴充套件。
透過繼承,可以建立類之間的層次關係,使得子類能夠複用父類的程式碼,並在父類的基礎上新增新的屬性和方法。
繼承性還支援多型性,即允許子類重寫父類的方法,以實現不同的行為。
多型性(Polymorphism):
多型性是指允許不同類的物件對同一訊息作出響應,或者說,允許一個介面使用不同的例項而執行不同操作。
多型性可以透過方法過載(Overloading)和方法重寫(Overriding)來實現。
方法過載是指在同一類中,允許有多個同名方法,但它們的引數列表不同;方法重寫是指在子類中,允許重寫父類的方法,以實現不同的行為。
多型性使得程式具有更高的靈活性和可擴充套件性,能夠處理更加複雜的情況和需求。
5.彙編:
彙編通常指的是將組合語言(一種低階程式語言,接近機器碼)轉換為機器碼的過程。
組合語言由助記符(代表機器指令的符號)和運算元(指令操作的物件)組成。
彙編器(Assembler)是執行彙編過程的工具,它將組合語言程式碼轉換為機器碼,以便計算機能夠直接執行。
6.編譯:
編譯是將高階程式語言(如C、C++、Java等)的原始碼轉換為機器碼或中間程式碼的過程。
編譯器(Compiler)是執行編譯過程的工具,它分析原始碼的語法和語義,生成目的碼(機器碼或中間程式碼)。
編譯過程通常包括詞法分析、語法分析、語義分析、中間程式碼生成、目的碼生成和最佳化等步驟。
編譯後的程式碼通常被儲存為可執行檔案,可以獨立執行,不需要原始碼或編譯器。
7.解釋:
解釋是逐行讀取原始碼,並立即執行每行程式碼的過程。
直譯器(Interpreter)是執行解釋過程的工具,它不需要將原始碼轉換為機器碼,而是直接執行原始碼中的指令。
解釋過程通常較慢,因為每次執行程式時都需要逐行解釋原始碼。
解釋語言(如Python、JavaScript等)通常用於快速開發和互動式程式設計環境。
8.執行:
執行是指計算機執行編譯後的機器碼或解釋後的指令的過程。
執行過程由計算機的中央處理器(CPU)控制,它按照指令的順序執行操作,並處理資料。
執行結果可能包括輸出到螢幕、儲存到檔案或改變程式狀態等。
教材學習中的問題和解決過程
1.形參與實參的區別
2.return的用處
3.什麼是函式呼叫者
4.return a+b中的a+b會被執行嗎,如果會被執行,那麼結果將儲存在哪裡
基於AI的學習