提高程式碼複用性相關知識
在java學習過程中,我發現有幾個知識點,它們的作用都包含有提高程式碼的複用性.所謂提高程式碼複用性,簡單來說就是能夠讓一個東西重複操作,還能減少工作量(也就是懶人思想).目前提到提高程式碼複用性的知識點有以下四個.
1.為什麼要有方法? 提高程式碼的複用性
2.面向物件思想特點:複雜的事情簡單化(複用性)
3.繼承的好處:提高了程式碼的複用性.
4.抽象類的成員方法特性:
a:抽象方法 強制要求子類做的事情(如果有子類,強制子類重寫)
b:非抽象方法 子類繼承的事情,提高程式碼複用性
下面就這幾點分別進行簡單的分析.
第一點:為什麼要有方法?
做任何事情都必須有方法.沒有方法達不到結果.就好像一個人,如果餓了,他可以通過吃飯這個行為解決;困了,可以通過睡覺這個行為解決.那麼在java語言中,一個類,也必須有變數和方法.變數就是屬性,方法就是行為.一個人日食三餐,就是進行三次吃飯行為.在程式碼中想多次呼叫方法也是可以的,不需要每次都重新命名這個方法.方法的格式如下:
修飾符 返回值型別 方法名(引數型別 引數名1,引數型別 引數名2...) {
方法體語句;
return 返回值;
}
java作為強型別語言,規定了方法需要有修飾符,返回值型別,方法名和引數列表.修飾符決定了方法的適用範圍和方式.如:我們最常見的public static,決定了這個方法是公共靜態的,也就是誰都可以呼叫,類和物件都可以呼叫.而如果是private ,則只能在本類中呼叫.返回值型別和取決於返回值,返回值是什麼型別,返回值型別就是什麼型別,如int,string,或者沒有返回值型別(void).方法名就是方法的名字,取名方法則是見名識意,如睡覺,起名sleep.最後()中的是引數列表,包括引數型別和引數名.每次呼叫輸入的引數列表不同,呼叫方法的結果就不同.也就是說方法誰都可以呼叫,而不是專門的某個物件的方法,這樣,程式碼的複用性就大大增強了.
第二點:面向物件思想特點:複雜的事情簡單化(複用性).
Java作為面向物件的語言,和麵向過程的而語言有很大的區別.面向物件就是將萬物歸類,從類中建立物件,使用物件,指揮物件做事情.所以說,萬物皆物件,想要做成什麼事情,只需要建立物件,讓物件呼叫方法就可以了,是一種模組化的狀態,符合日常行為習慣.譬如:如果想吃東西,那麼找到飯店,把需求一說,飯店就做了出來,你不用管是怎麼做出來的,而不需要自己買菜洗菜刷鍋炒菜一樣.簡單實用,可重複操作.
第三點:繼承的好處:提高了程式碼的複用性.
繼承就是子類繼承父類,父類的公共方法,可以直接繼承,拿來就用,而不需要自己再重寫一遍.達到用最少的程式碼做最多的事情,提高程式碼的複用性.就好像俗語說:龍生龍,鳳生鳳,老鼠的兒子會打洞.老鼠的兒子就是天生繼承了父類的打洞,不用自己學習創造打洞的方法.
第四點:抽象類的成員方法特性:
a:抽象方法 強制要求子類做的事情(如果有子類,強制子類重寫)
b:非抽象方法 子類繼承的事情,提高程式碼複用性.
抽象類用abstract修飾,因為不能不能具體形容,所以就是抽象類.這也決定了抽象類本身不能例項化,只能通過非抽象的子類例項化.抽象類的方法有抽象方法和非抽象方法兩種.抽象方法,強制要求子類重寫,重寫後才能呼叫,而非抽象方法也是可以直接繼承的,因為是繼承的,我們在第三點強調過繼承的好處,所以也是提高了程式碼的複用性.
總體看來,提高程式碼複用性是通過一系列方式實現的,首先是體現在面向物件的這種程式設計思想,其次是在面向物件的基本單位類中進行細節操作,要提高複用性,就必須提高耦合性,也就是加強彼此間的關係,主要是類與類之間的關係,這通過繼承和介面來實現.通過繼承,子類可以繼承父類的方法.通過介面,子類可以實現抽象類介面的方法.