1. 物件
首先我們要學習一下什麼是物件,物件的英文是"object』,我們的生活中到處都是物件,你面前的電腦、手中的手機或者是書架上的書等等都是物件,物件是一種實際存在的實體。
我們在學習物件的時候可以把物件看成兩個部分,一部分稱為屬性,一部分稱為行為。
例如:我們買了乙個鬧鐘,鬧鐘的材質是它的屬性,當鬧鐘響起來的時候是它的行為。
2. 類
我們在前面學習過的資料型別都屬於類,類是python的基本構造,在類中包含很多方法,我們在學習類的時候可以把類理解為乙個教室,當我們建立了乙個教室的時候,我們規定這個教室需要學習語文、數學和英語,當乙個學生加入這個班級,就需要學習這三門科目,類往往是我們定義的乙個載體,類中的成員會具有相同的屬性和行為。
我們可以把所有汽車看成乙個類,也可以把所有飛機看成乙個類,類是一種比較抽象的概念,我們在定義的時候要根據實際情況來定義。
物件導向程式設計有三大特點:封裝、繼承和多型。
3. 封裝
關於封裝,我們可以舉生活中的例子來學習一下,首先我們先從字面意思思考一下,封裝就是把東西封了起來,當我們買了一台音響,音箱內部存在電路板、線路等結構,而我們使用者不需要去知道他的內部結構和使用原理,所以這些結構被封閉在箱體內部,在箱體外提供一些介面供我們連線,這些在音箱內部的屬於封裝起來的東西。
我們在寫程式的時候也可以採用封裝的理念,對於一些內容我們不提供介面來使用它們,它們屬於內部的構造,屬於不可變的內容,這種內容即為封裝。
4. 繼承
提到繼承,大家一般都會聯想到遺產,我們如果拿遺產來形容繼承的話,在現實生活中的遺產繼承一般是單對單的,如果是單對多的形式,那麼多個人獲取到的遺產很有可能是不一致的,而我們在程式裡的繼承是一種完全繼承的關係。
我們可以把車看為乙個物件,然後不管是賓士車還是寶馬車又或者是大眾車,這些車都繼承了車的全部屬性和行為。我們把車看成乙個類,給車定義了在地面駕駛和4個輪胎的屬性,那麼當寶馬車來繼承這個類,寶馬車就獲得了在地面駕駛和4個輪胎的屬性,如果我們給車定義了高速行駛的行為,那麼寶馬車也繼承了它高速行駛的行為。
我們在使用繼承關係的時候,我們把車稱為"超類』或者"父類』,而繼承而來的寶馬車稱為"子類』或者"派生類』。
5. 多型
多型就是乙個父類有多個屬性,根據這些屬性而衍生了多個子類,我們繼續拿車來舉例,我們可以給車定義兩個屬性,乙個在馬路上行駛,乙個是在軌道上行駛,而這兩種屬性又都包括可載人,那麼我們在定義子類的繼承的時候,就可以定義了兩種子類,一種是可載人的但在馬路上行駛的汽車,一種是可載人但在軌道上形式的汽車,這種乙個類衍生出多個子類,他們有公共屬性也有私有屬性的方式稱為多型。
6. 總結
關於類和物件這兩種概念,在我們學習程式設計的時候至關重要,不管是計算機的任何行業,一定離不開類和物件的使用,多多使用生活中的例子去思考一下什麼是類和物件,下一節我們來學習類的定義和使用。
數字通訊ABC
通訊的目的就是把資訊從一處傳達到另一處。那麼資訊怎樣量化呢?夏農 shannon 資訊理論中定義了資訊熵 entropy h pi log2 pi 即每個資訊源輸出所含的平均資訊量。其中pi 為每個可能值的概率 熵的單位是位元 bit 例如我告訴你 我是男孩,這條資訊包含了 1 bit 因為性別只有...
模擬通訊和數字通訊
無論何種通訊系統,目的都是要完成一點到另一點的資訊傳遞,這樣可以吧通訊系統概括為乙個統一的模型,如圖1.圖1信源 信源指發出資訊的資訊源,即資訊的發出者。變換器 變換器的功能是將信源發出的資訊變換成適合在通道上傳輸的訊號。通道 通道是訊號傳輸的媒介,可分為有線通道和無線通道 空氣 雜訊源 在實際通訊...
數字通訊系統模型
1.信源編碼 信源編碼的主要任務有兩個 一是將信源送出的模擬訊號數位化,即對連續資訊進行模擬 數字 a d 轉換,用一定的數字脈衝組合來表示訊號的一定幅度。通常將這種過程稱為脈衝編碼調製 pcm 簡稱為編碼。二是提高訊號傳輸的有效性。也就是說,在保證一定傳輸質量的情況下,用盡可能少的數字脈衝來表示信...