日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

面向?qū)ο蟮奶攸c( 三 )


在一個對象內(nèi)部 , 某些代碼和(或)某些數(shù)據(jù)可以是私有的 , 不能被外界訪問 。 通過這種方式 , 對象對內(nèi)部數(shù)據(jù)提供了不同級別的保護 , 以防止程序中無關的部分意外的改變或錯誤的使用了對象的私有部分 。
繼承
繼承是可以讓某個類型的對象獲得另一個類型的對象的屬性的方法 。 它支持按級分類的概念 。 例如 , 知更鳥屬于飛鳥類 , 也屬于鳥類 。 就像圖5中描繪的那樣 , 這種分類的原則是 , 每一個子類都具有父類的公共特性 。
在OOP中 , 繼承的概念很好的支持了代碼的重用性(reusability) , 也就是說 , 我們可以向一個已經(jīng)存在的類中添加新的特性 , 而不必改變這個類 。 這可以通過從這個已存在的類派生一個新類來實現(xiàn) 。 這個新的類將具有原來那個類的特性 , 以及新的特性 。 而繼承機制的魅力和強大就在于它允許程序員利用已經(jīng)存在的類(接近需要 , 而不是完全符合需要的類) , 并且可以以某種方式修改這個類 , 而不會影響其它的東西 。
注意 , 每個子類只定義那些這個類所特有的特性 。 而如果沒有按級分類 , 每類都必須顯式的定義它所有的特性 。
多態(tài)
多態(tài)是OOP的另一個重要概念 。 多態(tài)的意思是事物具有不同形式的能力 。 舉個例子 , 對于不同的實例 , 某個操作可能會有不同的行為 。 這個行為依賴于所要操作數(shù)據(jù)的類型 。 比如說加法操作 , 如果操作的數(shù)據(jù)是數(shù) , 它對兩個數(shù)求和 。 如果操作的數(shù)據(jù)是字符串 , 則它將連接兩個字符串 。
圖6演示了一個函數(shù)處理不同數(shù)量、不同類型的參數(shù) 。 就像某個單詞在不同的上下文中具有不同的含義 。
多態(tài)機制使具有不同內(nèi)部結(jié)構的對象可以共享相同的外部接口 。 這意味著 , 雖然針對不同對象的具體操作不同 , 但通過一個公共的類 , 它們(那些操作)可以通過相同的方式予以調(diào)用 。 多態(tài)在實現(xiàn)繼承的過程中被廣泛應用 。
面向?qū)ο蟪绦蛟O計語言支持多態(tài) , 術語稱之為“one interface multiple method(一個接口 , 多個實現(xiàn))” 。 簡單來說 , 多態(tài)機制允許通過相同的接口引發(fā)一組相關但不相同的動作 , 通過這種方式 , 可以減少代碼的復雜度 。 在某個特定的情況下應該作出怎樣的動作 , 這由編譯器決定 , 而不需要程序員手工干預 。
在多函數(shù)程序中 , 許多重要的數(shù)據(jù)被聲明為全局變量 , 這樣它們才可以被所有的函數(shù)訪問 。 每個函數(shù)又可以具有它自己的局部變量 。 全局變量很容易被某個函數(shù)不經(jīng)意之間改變 。 而在一個大程序中 , 很難分辨每個函數(shù)都使用了哪些變量 。 如果我們需要修改某個外部數(shù)據(jù)的結(jié)構 , 我們就要修改所有訪問這個數(shù)據(jù)的函數(shù) 。 這很容易導致bug的產(chǎn)生 。
在結(jié)構化程序設計中 , 另一個嚴重的缺陷是不能很好的模擬真實世界的問題 。 這是因為函數(shù)都是面向過程的 , 而不是真正的對應于問題中的各個元素 。
面向過程的程序設計的一些特點如下:
·強調(diào)做(算法);
·大程序被分隔為許多小程序 , 這些小程序稱為函數(shù);
·大多數(shù)函數(shù)共享全局數(shù)據(jù);
·數(shù)據(jù)開放的由一個函數(shù)流向另一個函數(shù) 。 函數(shù)把數(shù)據(jù)從一種形式轉(zhuǎn)換為另一種形式 。

推薦閱讀