201711671119《Java程式設計》第四周學習總結
教學內容總結
第四章(上)
面嚮物件語言的特徵:
封裝性 繼承 多型
類命名程式設計風格:
1.若類名使用拉丁字母,則名字的首字母使用大寫字母
2.類名最好容易識別,見名知意
類的目的是抽象出一類事物共有的屬性和行為
類體的內容由變數的宣告和方法的定義組成:
變數的宣告:用來儲存屬性的值(體現物件的屬性)
方法的定義:方法可對類中宣告的變數進行操作,即給出演算法(體現物件所具有的行為)
成員變數的型別:
整型、浮點型、字元型、邏輯型別、引用型別、陣列、物件和介面
成員變數的有效範圍:
在整個類內都有效,與在類體內的書寫位置無關
成員變數程式設計風格:
1.一行只宣告一個變數
2.變數的名字除了符合識別符號規定外,名字的首單詞的首字母使用小寫,若由多個單片語成則用駝峰習慣
方法頭:
由方法的型別、名稱、名稱後的一對小括號及其中的引數列表所構成
int add(int x,int y,int z) //有參的方法頭
方法體
區分成員變數和區域性變數:(詳見課本P56)
- 若區域性變數的名字與成員變數的名字相同,則成員變數被隱藏,即該成員變數在這個方法內暫時失效
class Tom{ int s=10,int y; void f(){ int x=5; y=x+x;//y=10,此處x=5 } }
2.若想使用被隱藏的成員變數,則必須使用關鍵字this
class Tom{
int s=10,int y;
void f(){
int x=5;
y=x+this.x;//y=10,此處x=5,this.x=10
}
}
需要注意:
對成員變數的操作只能放在方法中
class A{
int a;
float b;
a=12;//非法,這是賦值語句(語句不是變數的宣告,只能出現在方法體中)
b=12.35f;//非法
}
UML圖:
- 屬於結構圖,常被用於描述一個系統的靜態結構
- 包含類、介面、泛化關係、關聯關係、依賴關係、實現關係的UML圖
- 頂部第一層是名字層(若類的名字是斜體字形則該類是抽象類)(抽象類詳見第五章)第二層是變數層 “變數名字:型別” 第三層是方法層“方法名字(引數列表):型別”
構造方法:
- 當程式用類建立物件時需使用它的構造方法
- 類中的構造方法的名字必須與它所在的類的名字完全相同,沒有型別
- 類中可有多個構造方法,但引數必須不同(引數的個數不同;若引數個數同,引數列表中的某個引數的型別不同)
- 若類中沒有編寫構造方法,系統預設該類只有一個構造方法,且無參及方法體中無語句
- 若類定義了一個或多個構造方法,則Java不提供預設的構造方法
物件宣告格式:
類名 物件名;
為宣告的物件分配變數:
建立物件即使用new運算子和類的構造方法為宣告物件分配變數
物件記憶體模型(詳見課本P60)
注意:
若類中定義了一個或多個構造方法,則不能利用預設構造方法來建立物件
使用物件(體現物件的屬性):
物件.變數;
物件呼叫類中的方法(體現物件的行為):
物件.方法
物件的引用和實體:
- 避免使用空物件(若使用空物件則程式在執行時會出現異常)
- 同個類中的兩個物件可進行賦值操作
object2=object1;
- 垃圾收集:
若“垃圾收集”機制發現二者具有相同的實體,檢測某個實體不再被任何物件所引用,就釋放實體佔有的記憶體
基本資料型別引數的傳值:
只能向較高型別傳遞一個較低的值
引用型別引數的傳值:
當引數是引用型別時,“傳值”傳遞的變數是變數中存放的“引用”,而不是變數所引用的實體
可變引數:
在宣告方法時不給出引數列表中從某項開始直至最後一項引數的名字和個數,但這些引數的型別必須相同
public int getSum(int…x)
int sum=0;
for(int i=0;i<x.length;i++){
sum=sum+x[i];
}
Return sum;
}
也可使用以下語句遍歷引數代表所代表的引數
for(宣告迴圈變數:引數代表){
……….
}
for(int param:x){
sum=sum+param;
}
程式碼除錯中問題和解決方法
這周敲的程式碼大多都按課本上的程式碼敲的,但是這章的概念有點多,容易混亂,按照課本打程式碼時甚至會打漏部分程式碼在這之後花費了一些時間找錯誤
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 200/200 | 1/1 | 10/10 | |
第二週 | 300/500 | 1/2 | 15/25 | |
第三週 |
442/942 | 1/3 | 26/51 | (不要再當鹹魚了!!!) |
第四周 | 620/1120 | 1/4 | 10/61 |