JAVA 2 Basic part 7

1.第十章 類別
類別成員的特性
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: