從零開始的Python計劃#7.2__類

*這章可以看到,從帶有一些名詞和動作的句子到一個更簡單的示例到繪圖,是非常容易的。可以更加清晰認識類。

類:指定特定類型對象的數據屬性和方法的代碼

舉個例子來描述這個編碼結構:餅乾和餅乾模具。
在這裏插入圖片描述
一個類就是餅乾模具,它有餅乾的形狀,有餅乾那麼大,有餅乾的寬度,餅乾的所有特點都包含在裏面,但是,它不是餅乾。但是,我們可以用它做餅乾。你可以理解這是一個藍圖的框架,它包含了我們創建對象所需的一切,但不是對象本身。

實例:根據類定義創建的對象

就是我們的餅乾模具開始工作並製造餅乾的時候,餅乾模具是這個類,餅乾就是那個類的實例。 用餅乾的話來說,餅乾模具是做餅乾的,餅乾是由模具實現功能創造出來的,它類似於根據藍圖建造的特定房屋。一個類可以有多個實例。 模具是獨一無二的,但是餅乾可以是無限的。所以我們可以從一個類創建多個實例。

面向對象設計與編程

當我們談到面對對象編程時,我們比之前更需要從設計部分定義編程部分
面向對象設計是一個思考軟件系統如何由交互對象組成的系統過程, 我們必須在對象中實現每個對象的屬性和方法,並確定對象之間的連接方式。在寫一行代碼之前用這個設計來識別所有東西。
面向對象設計的輸出是一個實現規範。
面向對象編程是將實施規範轉換爲工作程序的過程。

面向對象設計規範

我們使用 統一建模語言(UML), 是一種非常流行的語言,用於指定面向對象的設計。
1·它提供了不同類型的圖表
2·給了我們不同的可能性:類或對象,我們可以使用UML類圖來描述軟件系統的類(即對象)和類之間的關係。

在UML中,類被表示爲一個包含三個部分的框
在這裏插入圖片描述
1·第一部分顯示類的名稱(rectangle)
2·中間部分列表:數據屬性 (在這裏,必須擁有將對象定義爲對象的所有數據,矩形必須有寬高的參數)
3·底部列出了該類的方法(我們所需要知道矩形的面積和周長)
屬性(或方法)前面的減號(-)表示私有屬性(或方法);
屬性(或方法)前面的加號(+)表示公共屬性(或方法)
兩個類之間的簡單關係(稱爲關聯)用實線表示

在開發面對對象程序時,第一個目標是確定類。
—我們需要先確認這些對象的身份,一般來說通常涉及識別問題中的實際對象(因爲編程通常幫助我們解決現實世界的問題,最好的方法是寫下問題,然後看一下寫的句子中哪些內容實際上是現實世界中的對象)。有一些技術可以識別對象或類:
1·首先寫下問題的描述
2·識別所有的名詞
3·優化列表來僅包括與問題相關的類
要找出一個類的職責,需看問題領域,一個類負責瞭解的事情:
1·識別這些屬性有助於識別類的數據屬性
2·識別這些有助於識別類的方法

舉例:這是一個我們想用編程解決的問題
在這裏插入圖片描述
客戶使用銀行自動取款機檢查其銀行賬戶餘額,存款,取款,轉賬
我們可以馬上看到三個名詞:customer ,bank ATM ,bank account ,我們可以知道這三個是對象,同時查看check balance,deposit funds,withdraw cash,transfer funds這四個動詞可以幫助我識別我的類將擁有的方法。

面向對象設計規範(示例)

考慮建立一個銀行系統:
—最明顯的目標是銀行賬戶和客戶
—每個客戶都應該連接到一個銀行賬戶
—標識每個對象的屬性和方法

在這裏插入圖片描述

可以看到有兩個目標,一個銀行賬戶和一個客戶;
銀行賬戶的屬性是餘額balance和用戶唯一的賬戶號accNumber;
deposit_money是一定數量的浮點數,然後有withdraw_money,會有另一個流程。我們可以從銀行賬戶裏取一些錢,數量就會從餘額中減去;
然後有個customer,有一個名字和地址的屬性。它有四個方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章