類別成員的特性
1.常用性:例如:Math內....系列
2.共用性:例如:Car's Sum 變數
2.傳值 (Passing by Value) VS 傳址 (Passing by Address)
基本型(非參考型):(數字、文字、等一般資料)
1.不需要 new,直接配記憶體空間。
2.資料會複製一份,而非參考指向
int i=90; (不用 new,直接配一空間給 i,值為90。)
int j=i; (複製 90到另一個記憶體空間給 j,所以 j 和 i 各有各的空間,各有各的值。互不影響 )
參考型:(物件、陣列等)
1.需要 new 才配。
2. 不複製資料,僅給予相同的參考指向。所以使用相同的值及記憶體空間。
範例一:(類別物件)
class Car {
Static int Sum =0;
Car2 = Car1;
}
這裡的Car1與Car2 指向同一位置的記憶體,共用相同的值。
範例二:(陣列)
int [ ] scores
data = scores
這裡的 data 指向與 scores 相同的位置。
3.物件的陣列
Car cars[ ]; // 引用 Car類別來建立 cars陣列
cars = new Car[3];
for (int i =0; i <cars,length; i++){
cars[i] = new Car( );
}
cars[0].setCar(1234, 20.5);
cars[1].setCar(2345, 30.5);
cars[2].setCar(3456, 40.5);
for(int i=0; i< cars.length; i++){
cars[i].show();
上面的 for 迴圈可以改成用下面 for ~ each 迴圈。 for each loop, Java 5.0 後才有
for ( Car k : cars) {
k.show();
}
// for ( X Y : Z)
// X = Car類別 Y = 變數 k : 這裡用分號區隔 Z = cars陣列
// 建立 for each 迴圈,在Car 類別中,讀取每個 cars 陣列,並將每個 cars 陣列放入變數k,然後將 k ( cars 陣列 )一個一個 show 出來。
PS:說明二:另一個例子
for ( Contact c : cont) {
c = new Contact( );
}
// 建立 for each 迴圈,在Contact 類別中,讀取每個 cont 陣列,並將每個 cont 陣列放入變數 c,然後將 c ( cont 陣列 )一個一個 new 起來。
4.第十三章
2+1種修飾子 for class:
1. public、2.default、3.final
4+2種修飾子 for 成員(變數、方法):
1.public、2.protected、3.private (3個保留字)、4.default (空白)、5. static (靜態)、6.final
5.Package (套件)
練習一:將 TestCh13_1專案的 Sample1.java 設定 package xyz
PS:在相同專案中不同 package下,需要靠 import package來使用 class。
1. 在 Sample1 輸入 package xyz;
2. 在 class Car 前面輸入 Public ,目的是將 Car Public 出來。
3. 在 class Car 輸入 package tw;,目的是因為原本是屬於"default package",而"default package"是沒有名字,無法被 import 。
4. 在 Sample1 匯入tw。(Java 會在Car 下面出現紅線,引導自動匯入Car。)
練習二:(Jar ) (針對要參考的函式庫在不同專案下,必須將函式庫匯入才能用)
PS:在不同專案中,需要參考的類別,需先匯出成函式庫,再給別人匯入。
出口方(export)
1.將 class寫好
2.在 project 點滑鼠右鍵,選 export --> Java --> Jar file --> Next
3.設定檔名與路徑
進口方(import)
4.將 main 寫好
5.宣告使用某個"進口"的類別及變數
6.在 project 內建立一個 lib 資料夾 (也可以不建立),將 jar 檔複製 / 貼上
7.在 project 點滑鼠右鍵,選 properties --> Java Build Path --> Libraries -->Add jar --> 所屬 project 內的 lib 資料夾 -->選取該 jar 檔
8.再回到 main,在該類別名稱上選 import,完成。
PS:產生 doc 文件
請參考 Java官方文件: Javadoc_用法_URL
6.第十四章 (例外處理:try...catch)
請參考 Java官方文件:JavaDocAPI_URL
語法:
// Phase I
System.out.println("將值指定給test[10]。");
try {
test[10] = 80;
System.out.println("將80指定給test[10]。");
}
//catch(java.lang.ArrayIndexOutOfBoundsException e) {
catch(java.lang.Exception e) {
// 參考 http://docs.oracle.com/javase/6/docs/api/
System.out.println("發生錯誤:");
e.printStackTrace();
}
finally {
System.out.println("Phase I告一段落");
}
7.輸入與輸出
串流:課本P.337 ~P.341
練習:寫4筆通訊錄資料
姓名 座號 電子郵件
Name seatnum email
王小明 1 wang@gmail.com
李大明 2 lee@gmail.com
王小梅 3 wang2@gmail.com
李大梅 4 lee2@gmail.com
讀出這4筆,置於 class contact 所 new 的4個物件中,再 show 出來。
PS:儲存與讀取檔案的預設路徑,會設定在與 "src" 資料夾同一層。
No comments:
Post a Comment