您的位置:首頁>科技>正文

第二章:java物件導向之對象和類上篇(1)

詳細介紹請查看(全選連結黏貼至流覽器閱讀, 介紹更為詳細, 小便也是對其進行總結和實例演示罷了):

http://pdf7.tarena.com.cn/tts8_source/ttsPage/JAVA/JSD_V05/OOP/DAY01/SUPERDOC/01/index.html

物件導向程式設計:

首先來看一個需求, 實現員工資訊管理, 將員工簡歷資訊中的資料:姓名、性別、年齡、薪水, 存儲在資訊管理系統中進行操作。 可以定義一個輸出雇員資訊的方法進行資料的輸出, 傳遞4個參數, 代碼如下:

在main() 方法中聲明雇員資訊資料(分別為4個變數), 然後調用如上的輸出雇員方法進行資料的輸出, 當提升工資後, 再調用輸出方法輸出, 代碼如下:

上代碼的實現方式即為面向過程的結構化程式設計, 何為面向過程?面向過程是一種以過程為核心的程式設計思想, 即分析出解決問題所需要的步驟, 然後使用方法將這些步驟一步一步的實現, 使用的時候, 在main方法中一個一個依次調用就可以了。

分析如上代碼, 看看結構化程式的弊端所在, 首先, 如上代碼缺乏對資料的封裝, 變數emp1Name,emp1Age,emp1Gender,emp1Salary為4個完全獨立的變數, 並不是一個整體。 其次, 資料和方法(對資料的操作)的分離, 在列印雇員資訊方法中, 傳遞了4個參數, 而這4個參數與在main方法中所定義的4個變數並無直接關係。 這就是面向過程程式設計的弊端,

那如何解決?使用物件導向的程式設計。

什麼是抽象資料類型:

物件導向的第一步就是抽象資料類型, 所謂抽象資料類型可以理解為:將不同類型的資料的集合組成個整體用來描述一種新的事物。 像如上程式中, 可以將姓名、年齡、性別、工資這4個不同類型的資料組成一個整體來描述雇員這個新事物。

什麼是類:

類定義了一種抽象資料類型, 而類不但定義了抽象資料類型的組成(成員變數), 同時還定義了對該類型可以實施的操作(方法)。 看如下代碼定義了雇員類:

在如上的實例代碼中, 僅僅定義了Emp類型的組成, 即成員變數。 該類定義了4個成員變數:String類型的name用於存放名字;int類型的age用於存放年齡;char類型的gender用於存放性別;double類型的salary用於存放工資。

這個時候printEmpInfo()方法的參數也可以進行修改了, 可以將其改為Emp類型(Emp是一種抽象資料類型), 這樣可以看出是將一個雇員資訊當作了一個整體來操作, 看如下代碼:

當調用如上方法時, 需要傳遞一個Emp類型的資料, 稱之為Emp類型的物件。 每個Emp類型的對象都包含name、age、gender和salary四個成員, 通過“.”的方式進行訪問。 下面看一下在main ()方法中的調用代碼:

分析如上幾段代碼可以看出,定義了Emp類以後,提升了代碼的模組化以及代碼的重用性,但程式依然存在問題,即:列印資訊的方法是只針對Emp資料的操作,屬於Emp自身的方法,需要實現資料和方法(對該類資料的操作)的統一,也就是說,可以將列印信息的方法也放在Emp中定義,修改後的完整代碼如下所示:

通過上面的代碼,很好的實現了對資料的封裝,並且實現了資料與方法的統一。這種方式即為物件導向方式,即:以物件為中心來構建軟體系統。

定義一個類:

類是一種引用資料類型。類為物件的範本,簡單的說就是分類。類的定義包括“成員變數”的定義和“方法”的定義,其中“成員變數”用於描述一類物件共同的資料結構。在Java語言中,類的成員變數的定義可以使用如下語法:

定義好類之後,可以創建該類的物件,物件創建之後,其成員變數可以按照預設的方式初始化;物件成員變數的預設初始化值規則如下圖 - 5所示:

定義類的方法:

類中除了定義成員變數,還可以定義方法,用於描述物件的形為,封裝物件的功能。在Java語言中,可以按照如下方式定義類中的方法:

下面,通過案例對成員方法進行演示,需求:為方塊類定義drop()方法如下所示:

調用方法,也和訪問成員變數一樣,通過“.”符號,代碼如下:

創建並使用物件:

1.使用new關鍵字創建物件:

類定義完成後,可以使用new關鍵字來創建物件。new運算的語法為: new 類名();此創建物件的過程也通常稱為產生實體。

javax.swing.JFrame是JDK提供的一個類,用於封裝顯示在桌面上的一個表單。使用new JFrame()可以創建一個表單物件,如下圖 – 1所示:

2.參考類型變數:

為了能夠對產生實體的物件進行存取控制,需一個特殊的變數,即引用。對引用有兩點需要說明:

參考類型變數可以存儲該類物件的位址資訊,通常稱為“指向該類的物件”,當一個參考類型變數指向該類的物件,就可以通過這個變數對物件實施訪問。

除8種基本類型之外,用類、介面、陣列等聲明的變數都稱為參考類型變數,簡稱“引用”。

可以看圖 – 3,描述了類、物件、引用之間的關係:

當創建了參考類型變數之後,就可以通過引用來訪問物件的成員變數或調用方法,如下代碼所示:

3.訪問物件的成員變數、調用方法:

當創建了引用後,即可以通過引用來訪問物件的成員變數,以及調用方法。看如下的示例:

4.參考類型變數的賦值:

參考類型變數存儲的是物件的位址資訊, 對參考類型變數的賦值, 除了使用上面的new關鍵字以外,還可以有另外一種賦值方式, 即:相同類型的參考類型變數之間相互賦值。 需要注意的是:參考類型變數之間的賦值不會創建新的物件,但有可能會使兩個以上的引用指向同一個對象。 請看如下代碼:

如上代碼的輸出結果為:白髮饃女。因為e1與e2存儲的位址相同,也就意味著e1與e2指向了同一個物件,那麼對該物件的修改,將會影響所有對該物件的引用。

null和NullPointerException:

對於參考類型變數,除了上面的兩種賦值方式之外,還可以對其賦值為null。null的含義為“空”,表示還沒有指向任何物件。例如:

需要注意:當一個引用的值為null的時候,如果通過引用訪問物件成員變數或者調用方法是不合邏輯的(因其沒有指向某物件,自然不會有屬性和方法)。此時,會產生NullPointerException(空指針異常)。異常的詳細概念後面詳細講。請看下面的代碼,將就產生NullPointerException:

總結:

1.抽象資料類型:物件導向第一步,即將不同類型的資料的集合組成個整體來描述一種新事物。

類:不但定義了抽象資料類型的組成(成員變數),同時還定義了對該類型可以實施的操作方法,類是一種引用資料類型,類為物件的模版,類包括成員變數和方法的定義,其中成員變數用於描述一類物件共同的資料結構,

2.類的定義:

class 類名 {

成員變數類型 變數名稱;

..........

3.成員變數預設初始值:

4.定義類的方法,用來描述物件的行為,封裝物件的功能,

方法的定義:

class 類名 {

返回數值型別 方法名 (參數列表){

方法體

5.類創建完成後,可用new來創建物件,此創建物件的過程也稱為類的產生實體;


6.訪問成員變數及類方法,


3.定義Emp的組成,即4個成員變數,定義列印方法。因為在類中,方法可直接對成員變數操作

類的訪問:

4.為了對產生實體的物件進行存取控制,需要一個特殊的變數,即引用,有兩點注意:

1參考類型可以存儲該類物件的位址資訊,通常稱為“指向該類的物件”,當一個參考類型

變數指向該類的物件,就可以通過這個變數對物件實施訪問。

2除8中基本類型之外,用類,介面,陣列等聲明的變數都稱為參考類型變數,簡稱“引用”.

當創建了參考類型變數之後,就可以通過引用來訪問物件的成員變數或方法、

空指針異常:

分析如上幾段代碼可以看出,定義了Emp類以後,提升了代碼的模組化以及代碼的重用性,但程式依然存在問題,即:列印資訊的方法是只針對Emp資料的操作,屬於Emp自身的方法,需要實現資料和方法(對該類資料的操作)的統一,也就是說,可以將列印信息的方法也放在Emp中定義,修改後的完整代碼如下所示:

通過上面的代碼,很好的實現了對資料的封裝,並且實現了資料與方法的統一。這種方式即為物件導向方式,即:以物件為中心來構建軟體系統。

定義一個類:

類是一種引用資料類型。類為物件的範本,簡單的說就是分類。類的定義包括“成員變數”的定義和“方法”的定義,其中“成員變數”用於描述一類物件共同的資料結構。在Java語言中,類的成員變數的定義可以使用如下語法:

定義好類之後,可以創建該類的物件,物件創建之後,其成員變數可以按照預設的方式初始化;物件成員變數的預設初始化值規則如下圖 - 5所示:

定義類的方法:

類中除了定義成員變數,還可以定義方法,用於描述物件的形為,封裝物件的功能。在Java語言中,可以按照如下方式定義類中的方法:

下面,通過案例對成員方法進行演示,需求:為方塊類定義drop()方法如下所示:

調用方法,也和訪問成員變數一樣,通過“.”符號,代碼如下:

創建並使用物件:

1.使用new關鍵字創建物件:

類定義完成後,可以使用new關鍵字來創建物件。new運算的語法為: new 類名();此創建物件的過程也通常稱為產生實體。

javax.swing.JFrame是JDK提供的一個類,用於封裝顯示在桌面上的一個表單。使用new JFrame()可以創建一個表單物件,如下圖 – 1所示:

2.參考類型變數:

為了能夠對產生實體的物件進行存取控制,需一個特殊的變數,即引用。對引用有兩點需要說明:

參考類型變數可以存儲該類物件的位址資訊,通常稱為“指向該類的物件”,當一個參考類型變數指向該類的物件,就可以通過這個變數對物件實施訪問。

除8種基本類型之外,用類、介面、陣列等聲明的變數都稱為參考類型變數,簡稱“引用”。

可以看圖 – 3,描述了類、物件、引用之間的關係:

當創建了參考類型變數之後,就可以通過引用來訪問物件的成員變數或調用方法,如下代碼所示:

3.訪問物件的成員變數、調用方法:

當創建了引用後,即可以通過引用來訪問物件的成員變數,以及調用方法。看如下的示例:

4.參考類型變數的賦值:

參考類型變數存儲的是物件的位址資訊, 對參考類型變數的賦值, 除了使用上面的new關鍵字以外,還可以有另外一種賦值方式, 即:相同類型的參考類型變數之間相互賦值。 需要注意的是:參考類型變數之間的賦值不會創建新的物件,但有可能會使兩個以上的引用指向同一個對象。 請看如下代碼:

如上代碼的輸出結果為:白髮饃女。因為e1與e2存儲的位址相同,也就意味著e1與e2指向了同一個物件,那麼對該物件的修改,將會影響所有對該物件的引用。

null和NullPointerException:

對於參考類型變數,除了上面的兩種賦值方式之外,還可以對其賦值為null。null的含義為“空”,表示還沒有指向任何物件。例如:

需要注意:當一個引用的值為null的時候,如果通過引用訪問物件成員變數或者調用方法是不合邏輯的(因其沒有指向某物件,自然不會有屬性和方法)。此時,會產生NullPointerException(空指針異常)。異常的詳細概念後面詳細講。請看下面的代碼,將就產生NullPointerException:

總結:

1.抽象資料類型:物件導向第一步,即將不同類型的資料的集合組成個整體來描述一種新事物。

類:不但定義了抽象資料類型的組成(成員變數),同時還定義了對該類型可以實施的操作方法,類是一種引用資料類型,類為物件的模版,類包括成員變數和方法的定義,其中成員變數用於描述一類物件共同的資料結構,

2.類的定義:

class 類名 {

成員變數類型 變數名稱;

..........

3.成員變數預設初始值:

4.定義類的方法,用來描述物件的行為,封裝物件的功能,

方法的定義:

class 類名 {

返回數值型別 方法名 (參數列表){

方法體

5.類創建完成後,可用new來創建物件,此創建物件的過程也稱為類的產生實體;


6.訪問成員變數及類方法,


3.定義Emp的組成,即4個成員變數,定義列印方法。因為在類中,方法可直接對成員變數操作

類的訪問:

4.為了對產生實體的物件進行存取控制,需要一個特殊的變數,即引用,有兩點注意:

1參考類型可以存儲該類物件的位址資訊,通常稱為“指向該類的物件”,當一個參考類型

變數指向該類的物件,就可以通過這個變數對物件實施訪問。

2除8中基本類型之外,用類,介面,陣列等聲明的變數都稱為參考類型變數,簡稱“引用”.

當創建了參考類型變數之後,就可以通過引用來訪問物件的成員變數或方法、

空指針異常:

Next Article
喜欢就按个赞吧!!!
点击关闭提示