201711671129《Java程式設計》第4、5周學習總結
教材學習內容總結
第4章 類與物件
4.1程式語言的發展階段
面向機器—>面向過程—>面向物件(封裝性、繼承、多型)
4.2類
類的定義包含兩個部分:類宣告 和 類體
4.2.1類的宣告
類的名字要符合識別符號規定
類命名遵守下列程式設計風格:
(1)如果類名使用拉丁字母,那麼名字的首字母使用大寫字母,如Hello、Time等。
(2)類名最好容易識別、見名知意。當類名由幾個“單詞”複合而成時,每個單詞的首字母應大寫,如ChinaMade
4.2.2 類體
類宣告之後的一對大括號 “{ }” 以及它們之間的內容稱作類體,大括號之間的內容稱作類體的內容。
類體的內容由如下所述的兩部分構成:
(1)變數的宣告:用來儲存屬性的值(體現物件的 屬性)。
(2)方法的定義:方法可以對類中宣告的變數進行操作,即給出演算法(體現物件所具有的 行為)。
4.2.3 成員變數
宣告變數部分所宣告的變數被稱為 成員變數 或 域變數。
1、成員變數的型別:成員變數的型別可以是Java中的任何一種資料型別,包括基本型別:整型、浮點型、字元型、邏輯型別;引用型別:陣列、物件和介面。
2、成員變數的有效範圍:在整個類內都有效,其有效性與它在類體中書寫的先後位置無關。(習慣先介紹屬性再介紹行為)
3、程式設計風格:(1)一行只宣告一個變數。(2)變數的名字除了符合識別符號規定外,名字的首單詞的首字母使用小寫,如果變數的名字由多個單片語成,從第2個單詞開始的其他單詞的首字母使用大寫。(3)變數名字見名知意。
4.2.4 方法
方法的定義包括兩部分:方法頭 和 方法體。
方法頭:由方法的型別、名稱和名稱之後的一對小括號以及其中的引數列表所構成。(引數可有可無)
(void不需要返回資料)
方法體:方法宣告之後的一對大括號{、}以及它們之間的內容稱為方法的方法體。方法體的內容包括區域性變數的宣告和Java語句,即在方法體內可以對成員變數和方法體中宣告的區域性變數進行操作。
區域性變數:在方法體中宣告的變數和方法的引數被稱作區域性變數,和類的成員變數不同的是,區域性變數只在方法內有效,而且與其宣告的位置有關。方法的引數在整個方法內有效,方法內的區域性變數從宣告它的位置之後開始有效。
區分成員變數和區域性變數:如果區域性變數的名字與成員變數的名字相同,那麼成員變數被隱藏,即該成員變數在這個方法內暫時失效。(如果想在該方法中使用被隱藏的成員變數,必須使用關鍵字 this)
區域性變數沒有預設值:成員變數有預設值,但區域性變數沒有預設值,因此在使用區域性變數之前,必須保證區域性變數有具體的值。
4.2.5 需要注意的問題:對成員變數的操作只能放在方法中,方法使用各種語句對成員變數和方法體中宣告的區域性變數進行操作,宣告成員變數時可賦予初值。
4.2.6類的UML圖
UML圖屬於結構圖,常被用於描述一個系統的靜態結構。
4.3 構造方法與物件的建立
構造方法:是類中的一種特殊方法,當程式用類建立物件時需使用它的構造方法。類中的構造方法的名字必須與它所在的類的名字完全相同,而且沒有型別。允許一個類中有多個構造方法,但必須保證其引數不同(引數不同指:引數個數不同 或 個數相同但型別不完全相同)
注意:如果類中沒有編寫構造方法,系統會預設該類只有一個構造方法,該預設的構造方法是無引數的,且方法體中沒有語句。
a預設構造方法與自定義構造方法:如果類裡定義了一個或多個構造方法,那麼Java不提供預設的構造方法。
b構造方法沒有型別。
建立物件:建立一個物件包括物件的宣告和為物件分配變數
物件的宣告: 類的名字 物件名字;如:Lader lader;
分配變數:使用new運算子和類的構造方法為宣告的物件分配變數,即建立物件。
使用物件
物件操作自己的變數(體現物件的屬性)
物件通過使用點運算子“.”(點運算子也稱引用運算子或訪問運算子)訪問自己的變數,訪問格式為: 物件.變數;
物件呼叫類中的方法(體現物件的行為)
物件可以使用點運算子“.”呼叫建立它的類中的方法,從而產生一定的行為(功能),呼叫格式為: 物件.方法;
4.7例項成員與類成員
1不同物件的例項變數互不相同
2所有物件共享類變數
3通過類名直接訪問類變數
加關鍵字static的叫做類變數/類方法(皆為靜態)
4.8方法過載
方法過載的意思是:一個類可以有多個方法具有相同名字,但這些方法的引數必須不同(引數個數不同;或,引數個數相同,但引數表中的某個引數的型別不同)
多型:一個出現多種狀態 過載:繼承後發生一些變化
4.9 this關鍵字
this表示某個物件,不能出現於類方法中
例項方法只能通過物件來呼叫,不能用類名來呼叫。this代表正在呼叫該方法的當前物件。
當例項成員變數的名字與區域性變數的相同時,成員變數前面的“this.”或“類名.”就不可以省略。
4.10 包
包是用來區分同名類的。
4.11 import語句
import語句用來引入類庫和自定義包中的類
4.12 訪問許可權
private私有,public公有,protected保護,friend友好,內容與C和C++基本一致。
4.14 物件陣列
定義:Student [ ] stu;
stu = new Student[10];
表示陣列stu有10個元素,並且都是Student類的物件,但現在還只是空物件,在使用前應當建立陣列所包含的物件:
如:stu[0] = new Student();
教材學習中的問題和解決過程
程式碼除錯中的問題和解決過程
其他(感悟、思考等,可選)
變數的首字母需小寫;構造方法是沒有型別的;
學習進度條
參考資料
·Java學習筆記
·《Java學習筆記(第8版)》學習指導