Related Posts Plugin for WordPress, Blogger... 簡單易懂的低調手札: [MEMO] JAVA的18個基本概念

2011年3月26日 星期六

[MEMO] JAVA的18個基本概念

轉貼自:http://www.java1995.cn/article/926




關於Java的基礎知識,實踐證明學習OO,最終領悟「父類控制流程,子類實現具體的業務邏輯」的OO思想,需要的不是智商而是基礎,也就是說,基礎越好越快領悟,所以請每位S1學習Java的學員請牢記以下Java領域的基礎知識,最後祝各位學員在開發項目前可以領悟OO的真諦,老師也會竭盡全力助你們打通這道通向Java的極速大門。

  1、 OO三大特性:繼承封裝多態(主要用於搭建程序框架,以此來提高代碼的重用性與解藕業務邏輯)。

  2、 Java中的首字母大寫與命名規範:在Java中只有兩個地方會用到大寫的字母做為命名的第一個字母,一個是類,別一個是靜態變量。如:類Test、靜態 變量STATIC_NAME,如果Java使用的命名由幾個英文組成,則第二個開始的每個詞使用大寫隔開,如:userGroupId、 studentName。切忌:在Java中命名不能用中文與拼音,以及只有類名與靜態變量開頭的字母是使用大與,其他的命名如方法名、變量名一律開頭使 用小寫。

  3、包(package):Java裡面的類太多了,你寫,我寫,大家寫,我們用的類名相同,不可能放在一起,怎麼辦?把它們放在不同的包裡面,就不會衝突了,包名為網址倒過來寫,請不要使用拼音來命名包名,以及包名不要過長(包的結構就是程序框架的結構).

  4、 抽像類(abstract class): 前面加了 abstract 關鍵字修飾的類就是抽像類,抽像類不能生成實例(不能使用New關鍵字)只能拿來繼承,抽像類中一般包含抽像方法(作為債務產生),就是沒有具體實現的方法體(只做標示),一個類中如果定義了一個抽像方法這個類也就自動變成抽像類。

  5、 抽像方法. 前面加了abstract 關鍵字修飾,沒有方法體.也就是方法什麼事也沒幹,像個空頭支票(產生債務方法之一).

  6、 接口(interface): 接口可以理解為純抽像的類,它的每個方法都是未實現的,它就像一個產品的說明書(產生債務方法之一)。

  7、 對像: 對象是存在的具體實體,就是按照類(汽車設計圖紙),做出來的真正的看得見摸得著的汽車(註:聲明一個對象就像一個變量名,如果使用了New關鍵字就已在內存中分配了地址).

  8、 抽像:分析問題時抽出重要的因素,忽略掉不重要的(我們每天都在抽像身邊的事物,如:判斷一個人是好人還是壞人)。

  9、靜態變量與方法(Static):所謂的靜態變量就是在定義時加一個Static的關鍵字,被定義為靜態的方法與變量是唯一的,也就是說不 管這個類有多少個實例化對像它們都共用這個類中的靜態變量或方法,這也是為什麼使用靜態變量或方法是用類名來直接調用的原因,而非靜態變量或方法等於每個 實例化對象都有自己的方法與變量,這樣就會互不影響。舉個例子:老師相當於靜態的,因為被所有學員所共有,而學員就是非靜態的,因為每個學員都是獨立的。

  10、 Java的四種類型:

  1.Public : 公共類型,在繼承時,父類定義為公共類型的方法或變量子類可以全部繼承過去,而且別的類可以隨意調用公共類型的方法和變量。

  2.Private: 私用類型,在繼承時,父類定義為私用類型的函數或變量子類不能繼承,而且別的類不可調用私有類型的方法和變量。

  3.Protected:保護類型,在繼承時,父類定義為保護類型的函數或變量子類可以全部繼承過去,只有它的子類可以在不同的包調用它的方法(與Default唯一不同的地方,Default不可以),在一個包下面可以全部被調用。

  4.Default:默認類型,不加類型關鍵字會自動變成默認類型,繼承時父類定義為默認類型的函數或變量子類會全部繼承過去,但只有在一個包下面的類才能調用。

  11、 封裝(Encapsulation )將重要的信息隱藏起來,或者將不需要使用者知道的很麻煩的信息全部藏起來,就像全自動洗衣機,只提供給用戶一個簡單的按鈕,把裡面具體的實現藏起來,使 用戶感覺操作很簡單(封裝有兩種方法接口與抽像類也叫基類,其中接口的封裝效果最好)。

  12、 繼承(extends):子類可以繼承父類非私有的屬性和方法,就像兒子繼承老爸的財產,兒子可以少奮鬥二十年。

  13、 多態(Polymorphism): 多態性是指「多種形式」也叫「動態綁定」它使用不同的子類來執行不同的操作,前提是子類中相關方法名必須是一樣,這樣通過New一個不同的子類,通過接口 或者父類就可以做到只修改一行代碼而做到實現不同的功能,因為對於子類來講方法名大家都是一樣的,就好像「畫圖」這個方法,每個不同形狀的圖形都 有,New一個圓進去就是畫圓,New一個正方型進去就是畫正方型,這是因為在這些不同形狀的圖中,他們都有一個一樣的方法叫「畫圖」,不同形狀的圖形在 自己的「畫圖」方法中實現自己的特色,這樣使用動態綁定,只需要修改很少的代碼就可以做到New什麼就畫什麼,這些就是多態。

  14、 重載:當多個方法具有相同的名字而含有不同的參數個數或類型時,便發生重載.

  15、重寫:子類繼承父類,子類和父類的方法具有相同的名稱和類型,但子類幹的事和父類幹的事不一樣。就像你和你老爸都有個方法叫—工作,但工作的內容不一樣,你搞軟件開發,你老爸是醫生.

  16、 final 類:當一個類定義為 final 後,它將不能被其他類所繼承,在定義靜態變量時,一般 final 和 static 共同使用,這樣這個靜態變量就是不可變的。

  17、父債子還:這是Java中關於方法重寫的一種硬性規定,就像欠賬還錢一樣。在這裡有兩種方法會產生債務,一個是抽像方法,另一個是接口中 的方法,大家會發現這兩種都有一個特性:它們定義的方法體都是空的,這就是產生了債務,所謂的償還債務只是繼承這個抽像類的子類或實現了某個接口的類,它 們必須要重寫這些空的方法體,否則編譯器會報錯。在這裡只有定義為抽像類才不用還債,空的方法是一定要重寫的,就像你不還錢,你的兒子也要還錢,你兒子不 還,你的孫子就要還,一直到錢還清了,這個時候你的子類才不用強制重寫任何方法。

  18、 不能實例化:以下情況定義的類不可實例化(不能使用New關鍵字):抽像類、構造函數聲明為 private(私有)(不能繼承)


沒有留言:

張貼留言