1.資料庫管理工具 nazorSQL
根據老師提供的步驟,一步一步做一般都可以完成,這裡僅說明一些大家常遇到的問題:
a.在安裝的步驟中,一般都會卡在這一步驟。
原因是因為 derby 資料庫的服務沒有啟動 (關於資料庫服務請參考我部落格筆記 "20120619 JAVA2 語言基礎八" 第六點課後註解 )
b.在匯入資料的步驟中,一般都會卡在資料會不進去。
原因一:在 eclipse 建立的資料庫名稱 (database name) 或資料表名稱 (table name),與 nazorSQL 要連接的名稱不一樣。
解法:在 eclipse資料庫名稱必須與 nazorSQL 要連接的名稱相同。
原因二:已經在 eclipse 中 drop 掉 table,所以 nazorSQL找不到。
解法:在 eclipse 中再建立一次資料表。
2.第十一章 繼承
繼承:
1.有再利用性,基於原設計在擴充。
2.階層架構性,將設計架構化。
繼承關係整理:
1.繼承在 Java 內用 extend 保留字取其擴充之意。
PS:繼承的功能至少有二:
a.再利用性
b.階層架構性
2.父類別的成員之存取權限子 (Access Modifier) 有四種:
a. public 最鬆
b. protected 同套件之其他類別可以存取,也可以為不同套件子類別所存取。
c. private 最嚴
d. default 同套件之其他類別及子類別可以存取。不同套件皆不可。
3.子類別內要呼叫父類別的建構子可用 super( );
4.覆寫 (overriding )是另一種 overloading 之外的同名異式,即父子類別之間採用相同名稱的方法。PS:若變數同名呢? 稱為遮蔽 ( shadowing )
3.練習
利用 "..."來帶入不確定數量的參數,類似陣列的觀念,但不需宣告陣列數量。
程式碼
class ComputeV2 {
static int getMax (int... x){
int max =0;
for(int i = 0; i< x.length; i++)
if ( x[i] > max){
max = x[i];
}
return max;
}
static int getSum (int... x){
int total =0;
for(int i = 0; i< x.length; i++)
total = total + x[i];
return total;
}
static double getAvg (int... x){
double avg = (double) getSum(x) / x.length;
return avg;
}
public static void main(String[] args) {
System.out.println("max " + ComputeV2.getMax(22,57,80,50,60));
System.out.println("Sum " + ComputeV2.getSum(22,57,80,50,60));
System.out.println("Avg " + ComputeV2.getAvg(22,57,80,50,60));
}
}
結果
4.第十五章 執行緒
緒,就是線的意思。有線頭、線尾。另有線性的概念。
單執行緒:一般的程式都是用單執行緒,一個 main 裡免只有單一作業。
多執行緒:可在主執行緒工作時,開出另一分支執行緒去做另外的工作。
範例程式碼 (三個執行緒)
import java.util.Date;
class Car extends Thread //必須先繼承 Thread 類別來使用多執行緒。所以Thread是Car的父類別。
{
private String name;
public Car(String nm)
{
name = nm;
}
public void run() // run 方法是為分身的意思。
{
for(;;){ //使用for 無窮迴圈來觀察多執行續的先後次序
//子執行續 ( sun thread )在這裡,並加上時間以利於觀察。
System.out.println("正在進行" + name + "的處理工作。"+(new Date().toLocaleString()));
}
}
}
class Sample2
{
public static void main(String[] args)
{
Car car1 = new Car("1號車");
car1.start(); //使用Car 的父類別 Thread 的 start( )來開啟多執行續,會接到 Car 的 run 方法。
Car car2 = new Car("2號車");
car2.start(); //使用Thread 類別的 start( )來開啟多執行續,會接到 Car 的 run 方法。
for(;;){ //使用for 無窮迴圈來觀察多執行續的先後次序。
//主執行續 ( main thread )在這裡,並加上時間以利於觀察。
System.out.println("正在進行main()的處理工作。"+(new Date().toLocaleString()));
}
}
}
No comments:
Post a Comment