JAVA基礎程式設計班

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "JAVA基礎程式設計班"

Transcription

1 JAVA 基礎程式設計班 [ 第 8 章 ] 例外與檔案處理 國立台灣大學資訊工程學系暨研究所 資訊系統訓練班 講師 : 宋浩

2 章節目錄 8-1 例外處理 8-2 自訂例外 8-3 檔案處理 8-4 序列化處理 台灣大學資訊工程系資訊系統訓練班 2

3 8-1 例外處理 台灣大學資訊工程系資訊系統訓練班 3

4 例外處理 (Exception-handling) Java 程式語言非常嚴謹, 對程式的錯誤處理有一套很嚴謹的處理機制 除了在編譯時期嚴格的檢查原始碼可能產生的錯誤之外, 在程式執行時期也提供了相關的處理機制, 而這項機制稱為 例外處理機制 (Exception-handling Mechanishm) 台灣大學資訊工程系資訊系統訓練班 4

5 Java 的例外與錯誤 程式執行時可能產生不正常的情況, 而這不常的情況可能是所謂的 例外, 比方說 : 開啟一個不存在的檔案 除數為零 陣列的存取超出了索引值的範圍 未載入相關的套件即使用套件中的類別 台灣大學資訊工程系資訊系統訓練班 5

6 為什麼要有例外? 如果沒有例外處理 public class ReadFile { public void Read() { 開啟檔案 ; 決定檔案大小 ; 配置記憶體 ; 將檔案讀入記憶體 ; 關閉檔案 ; } } 指定檔案不存在檔尾記號損毀, 無法決定大小記憶體不足檔案毀損, 讀檔失敗檔案他人使用中, 無法關閉 程式停止! 台灣大學資訊工程系資訊系統訓練班 6

7 用 if-else 來處理例外呢? public class ReadFile { public int Read() { int ErrCode = 0; 開啟檔案 ; if ( 檔案存在 ) { 決定檔案大小 ; if ( 檔案大小已定 ) { 配置記憶體 ; if ( 記憶體足夠 ) { 將檔案讀入記憶體 ; if ( 讀入成功 ) { } } } else } else { } else { } } else { ErrCode = -3; } 關閉檔案 ; if ( 檔案無法關閉 && 無其它錯誤 ) ErrCode = -4; else ErrCode = -5; ErrCode = -6; return ErrCode; } ErrCode = -2; 開始操作檔案內容 ; ErrCode = -1; 台灣大學資訊工程系資訊系統訓練班 7

8 Java 例外的概念 (1) Java 將所有的例外 (Exception), 通通宣告成物件, 且全部繼承 Throwable 物件 java.lang.object Throwable Error Exception CheckedException RuntimeException 台灣大學資訊工程系資訊系統訓練班 8

9 Java 例外的概念 (2) Java VM Errors 此區所發出的例外事件,JVM 會自行處理 Checked Exceptions 此區所發出的例外事件, 是 Java 強迫要求程式師一定要處理的, 如不處理, 則 Compile 時期就會發生錯誤訊息 Runtime Exceptions 此區所發出的例外事件, 是使用者操作不小心所引起的, 程式師可處理可不處理,Java 並沒有硬性規定要攔截此類 Exception 台灣大學資訊工程系資訊系統訓練班 9

10 常見 JVM Errors 介紹 Error ThreadDeath VirtualMachineError ThreadDeath: 當一個程式無預警停止時, 就會發出此錯誤 VirtualMachineError: 當 JVM 內部出現無法解決的問題時, 就會發出此錯誤 台灣大學資訊工程系資訊系統訓練班 10

11 常見 Checked Exceptions 介紹 ClassNotFoundException: 當存取一個不存在或不正確的類別時, 就會發出此例外 CloneNotSupportedException: 嘗試呼叫.Clone(), 但該類別並未支援時, 會發出此例外 DataFormatException: 嘗試將一個資料指定給型態不符的物件時, 就會發出此例外 IOException: 檔案不存在, 或開檔不成功時, 就會發出此例外 台灣大學資訊工程系資訊系統訓練班 11

12 常見 Runtime Exceptions 介紹 例外名稱 例外狀況 ArithmeticException 分母為零時 IndexOutOfBoundsException 索引值超過物件上限時 ArrayIndexOutOfBoundsException 陣列索引值超過上限時 ( 子類別 ) StringIndexOutOfBoundsException 字串索引值超過上限時 ( 子類別 ) NegativeArraySizeException 當宣告陣列時, 索引值為負數時 NullPointerException 呼叫了一個內容為 null 的變數 ArrayStoreException 陣列元素型態與陣列所宣告不合 ClassCastException 類別轉型 (Casting) 失敗 IllegalArgumentException 傳入參數型態不符 NumberFormatException parse 轉型失敗 台灣大學資訊工程系資訊系統訓練班 12

13 Java 的例外處理程序 對於 Java 而言, 每個 Exception 都是一個物件 也就是說, 當程式發生 Exception 時, 就會產生某個特定的 Exception 物件 如果程式在執行時真的產生了異常情況,JVM 會依照一定的程序來處理異常情況, 過程如下 : 1. 中止產生異常情況的指令的執行 2. 產生此異常情況的 Exception 物件 3. 如果設計者有撰寫處理該 Exception 的程式碼, 則交由該區段的程式碼來處 理 ; 如果沒有設計處理的程式碼, 則交由 JVM 處理 4. 如果是由 JVM 來處理 Exception 物件, 則程式會異常終止 台灣大學資訊工程系資訊系統訓練班 13

14 Java 的例外處理範例 以下的範例顯示若沒有使用例外處理的語法時, 程式會在產生例外的敘述上停止執行 : 程式 9-1:Chap9\No Try.java 01: public class NoTry{ 02: public static vod main (String[] args){ 03: int count; 04: 05: String showname[]={ 06: "Alex", 07: "Ivy", 08: "Fanny" 09: }; 10: 11: for (count=0; count<4; count++){ 12: System.out.println(" 第 "+count + 個名字是 :"+showname[count]); 13: } 14: System.out.println(" 程式執行結束 "); 15: } 16: } 程式的執行結果為 : 第 0 個名字是 :Alex 第 1 個名字是 :Ivy 第 2 個名字是 :Fanny Exception in thread "main" java.lang. ArrayIndexOutOfBoundsException: 3 at NoTry.main (Notry.java:12) 台灣大學資訊工程系資訊系統訓練班 14

15 try-catch (1) try-catch 是 Java 程式的例外處理敘述, 該語法中的處理如下 : try { // 可能產生例外的敘述 } catch (ExceptionType E1) { // 產生 ExceptionType 例外時, 要處理的敘述 } catch (Exception E2) { // 產生其他的例外時, 要處理的敘述 } 在語法 try 區段中包含了可能產生例外的程式碼 catch 敘述後以 ( ) 表示需要處理的例外的類別,e1 或是 e2 則是產生的例外物件 catch 可以有多個區段, 可分別用來處理不同的例外情況 當程式進入 try 區段執行敘述時, 如果沒有發生例外, 則程式會在執行完 try 區塊中的敘述後跳過所有的 catch 區段, 繼續往下執行 如果在執行 try 區段中的敘述時產生例外, 則程式會由例外的發生點跳出 try 區段, 並嘗試進入第一個 catch 區段 如果該例外可以由該 catch 後的 Exception 類別處理, 則程式會進入該 catch 區段, 並執行相關的敘述 執行完畢後, 程式不會再執行其他 catch 區段的判斷, 而是直接跳出整個 try-catch 敘述 如果第一個 catch 區段無法處理 ( 或稱為 捕捉 ) 該例外, 程式會繼續執行其他的 catch 區段, 並且判斷 Exception 類別 如果所有的 catch 區塊都無法捕捉程式產生的例外,JVM 會停止該程式的執行 台灣大學資訊工程系資訊系統訓練班 15

16 try-catch (2) 以上一個 NoTry.java 範例加上捕捉例外的機制來示範如何撰寫 try-catch : 程式 9-2:Chap9\Try1.java 01: public class Try1 { 02: public static void main (String[] args){ 03: int count; 04: 05: String showname[] = {"Alex","Ivy","Fanny"}; 06: 07: try{ 08: for (count=0; count<4; count++){ 09: System.out.println(showName[count]); 10: } 11: } catch (ArrayIndexOutOfBoundsException e){ 12: System.out.println(e.toString()); 13: System.out.println(" 陣列索引超範圍 "); 14: } catch (Exception e){ 15: System.out.println(" 其餘的錯誤 " + e.getmessage()); 16: } 17: System.out.println(" 程式執行結束 "); 18: } 19: } 台灣大學資訊工程系資訊系統訓練班 16

17 try-catch (3) 程式的執行結果為 : Alex Ivy Fanny java.lang.arrayindexoutofboundsexception: 3 陣列索引超範圍程式執行結束 範例程式中將列印字串陣列的內容放在 try 區段中, 由上一個範例得知在迴圈執行時會產生 ArrayIndexOutOfBoundsException 的例外 因此在第一個 catch 區段中試圖捕捉該例外, 而 e 是當捕捉到這個例外時所產生的物件 程式的第 12 行使用了 tostring() 方法來列印出該例外的相關訊息 程式執行時也有可能會產生我們在設計時無法得知的例外 因此第二個 catch 區段嘗試捉 Exception 類別的例外, 因為這個類別是所有例外的父類別, 所以如果程式產生了不同於 ArrayIndexOutOfBoundsException 例外而第一個 catch 區段無法捕捉到時, 此區段會負責捕捉其他的例外 我們可以從程式的執行結果得知, 程式在執行完第 11~13 行的例外處理後, 並不會再執行第 14 和 15 行中的敘述而是直接跳離整個 try-catch 區塊, 且執行第 17 行的敘述 台灣大學資訊工程系資訊系統訓練班 17

18 catch 區段的順序 在上述的範例程式中, 如果刪除第 11~13 行的程式, 那執行的結果會是 : Alex Ivy Fanny 其餘的錯誤 3 程式執行結束 其中的 3 是第 15 行程式中的 getmessage() 方法所產生的訊息 必需注意的是因為 Exception 類別是所有例外的父類別, 因此不可以將 Exception 類別放在第一個 catch 區段中, 除非只使用一個 catch 區段 若將上一個範例程式的順序修改 : } catch (Exception e) { System.out.println(" 其餘的錯誤 " + e.getmessage()); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(e.toString()); System.out.println(" 陣列索引超出範圍 "); } 因為 Exception 類別會捕捉所有的 Checked Exception 因此第二個 catch 區段並無作用, 所以該程式在編譯時會產生 exception.java.lang.arrayindexoutofboundsexception has already been caught 的錯誤 台灣大學資訊工程系資訊系統訓練班 18

19 finally 區塊 (1) 程式在執行 try 區段時, 如果產生例外, 則程式會跳到相關的 catch 區段去處理, 並在處理完成後, 再直接跳出 try-catch 區段 也因此 try 區段中產生例外的程式行以下的程式碼並不會被執行 這樣的執行流程可能會產生一些問題 例如 : 如果你打算在 try 區段中撰寫開檔 寫入 關檔等程序, 但程式在進行寫入的動作時產生了例外, 那 關檔 的動作就無法執行了 因此 try-catch 敘述中還提供了 finally 區段來保證某此程式碼一定可以執行 只要設計了 try-catch 機制, finally 區段是一個不論例外是否發生, 它都一定會執行的一個區段 如果你打算在 try 區段中撰寫開檔, 寫入 關檔等程序, 那可以將開檔 寫入的動作放在 try 區段中, 而將 關檔 的動作寫在 finally 區段中, 以確定在 寫入 的動作產生了例外時, 還可以關閉開啟的檔案 要是你擔心如果在 開檔 的動作就產生例外, 而程式在 finally 區段中無法關閉未開啟的檔案時, 還可以在 finally 區段中再設計 try-catch 區段來捕捉這項例外 台灣大學資訊工程系資訊系統訓練班 19

20 finally 區塊 (2) 參考以下的範例, 並了解 finally 區段的執行情形 : 程式 9-3:Chap9/try2.java 01:public class Try2 { 02: public static void main(string[] args){ 03: int i, j, result; 04: 05: i = 100; 06: j = 0; 07: 08: try{ 09: result = i / j; 10: } catch (ArithmeticException e){ 11: System.out.println(" 除數不得為零 "); 12: } catch (Exception e){ 13: System.out.println(" 其餘的錯誤 "); 14: } finally { 15: System.out.println(" 執行 finally 區段 "); 16: } 17: System.out.println(" 程式執行結束 "); 18: } 19: } 台灣大學資訊工程系資訊系統訓練班 20

21 finally 區塊 (3) 程式的執行結果為 : 除數不得為零執行 finally 區段程式執行結束 範例程式的第 6 行中, 特地將 j 的值設定為 0, 因此程式第 9 行執行時會產生 ArithmeticException 的例外 在執行完第 11 行的敘述後, 程式會再執行第 行的 finally 區段的內容, 最後再執行第 17 行的程式碼 台灣大學資訊工程系資訊系統訓練班 21

22 finally 區塊 (4) 修改第 6 行的敘述改為 j = 10, 雖然不會有例外產生, 但程式仍然會執行第 14~15 行 程式 9-3:Chap9/try2.java 01:public class Try2 { 02: public static void main(string[] args){ 03: int i, j, result; 04: 05: i = 100; 06: j = 10; 07: 08: try{ 09: result = i / j; 10: } catch (ArithmeticException e){ 11: System.out.println(" 除數不得為零 "); 12: } catch (Exception e){ 13: System.out.println(" 其餘的錯誤 "); 14: } finally { 15: System.out.println(" 執行 finally 區段 "); 16: } 17: System.out.println(" 程式執行結束 "); 18: } 19: } 因此, 執行的結果會是 : 執行 finally 區段程式執行結束 台灣大學資訊工程系資訊系統訓練班 22

23 finally 區塊 (5) 雖然 try-catch 機制中 finally 是不管例外是否產生它都一定會執行的區段, 但是在特殊的情況下 finally 區段仍然有可能會無法執行完該區段中的所有程式碼 唯一會導致 finally 區段不執行的情況是 JVM 不再執行, 例如 : 呼叫 System.exit(0) 或是電腦當機 如果以上述的範例為例, 如果我們在 finally 區段中加上 System.exit(0) 的敘述, 如下列所示 : finally { System.exit(0); System.out.println(" 執行 finally 區段 "); } 那程式執行結果就會變成 : 除數不得為零 實際上該程式在執行完 System.exit(0) 時就已經執行完畢了, 所以 finally 區段中的第二行敘述當然就不會再被執行了 台灣大學資訊工程系資訊系統訓練班 23

24 finally 區塊 (6) 最後, 我們將 finally 區段做個總整理, 如果有下列的程式碼 : // 敘述一 try { // 敘述二 } catch (Exception e) { // 敘述三 } finally { // 敘述四 } 如果有以下的情況發生, 敘述四執行的狀況分別為 : 1. 如果敘述一產生例外, 則敘述四不會執行 2. 不管敘述二是否產生例外, 敘述四都會執行 3. 不管敘述三是否產生例外, 敘述四都會執行 台灣大學資訊工程系資訊系統訓練班 24

25 throws 敘述 (1) Java 程式語言要求 programmer 必需自行處理可能產生 Checked Exception 的程式碼 但其實當例外產生時, 你也可以不要使用 try-catch 機制立即處理它 可以取代的作法是 : 將它 丟 (throws) 出來給另一支程式處理 如果要使用這種方法, 則必需使用 throws 關鍵字 參考以下的範例 : 程式 9-4:Chap9/Throws1.java 01:public class Throws1 { 02: public static void main(string[] args){ 03: int a = 10, b = 0; 04: double result = 0; 05: try{ 06: result = calculate(a, b); 07: } catch (ArithmeticException e){ 08: System.out.println(" 除數不得為零 "); 09: } catch (Exception e){ 10: System.out.println(" 其他的例外 "); 11: } 12: System.out.println("result 的值為 :" + result); 13: System.out.println(" 程式執行結束 "); 14: } 15: 16: public static double calculate(int i, int j) throws ArithmeticException{ 17: return i/j; 18: } 19: } 台灣大學資訊工程系資訊系統訓練班 25

26 throws 敘述 (2) 程式執行結果為 : 除數不得為零 result 的值為 0 程式執行結束 注意範例程式中第 16 行 calculate 方法的宣告方式 該方法會傳回兩數相除的結果, 預估該方法可能產生除數為零的情況 但在 calculate 方法中, 我們並沒有撰寫捕捉例外的程式碼, 而是使用了 throws 關鍵字將例外丟出 此時呼叫該方法的程式區段就必需撰寫 try-catch 來捕捉可能產生的例外 這就是第 5 到第 11 行程式使用 try-catch 的原因 請注意 : 使用 throws 並不代表方法一定會丟出例外 範例程式中是因為我們特地將除數設定為 0,calculate 方法才會丟出例外 請自行將第 3 行程式中的 b 設定為非 0 的數值, 例如 :1 程式的執行結果會是 : result 的值為 :10.0 程式執行結束 台灣大學資訊工程系資訊系統訓練班 26

27 throws 敘述 (3) 方法中的程式碼在執行的過程中可能會產生不只一種類型的例外, 你可以使用逗號將各種例外區隔開來以便處理不同類型的例外 例如 : public static double calculate(int i, int j) throws ArithmeticException, Exception{ // 相關程式碼 ; } 或者也可以直接將所有可能產生的例外物件都轉型成 Exception 物件, 例如 : public static double calculate (int i, int j) throws Exception{ // 相關程式碼 ; } 範例程式中如果直接將 ArithmeticException 的例外物件轉型為 Exception 的例外物件, 程式的執行結果仍會是相同的有一點必需要知道的是 : Throws1.java 中的 calculate() 方法丟出來的 ArithmeticException 例外是屬 Runtime Exception 這類型的例外也可以不需要自行捕捉, 程式也可以通過編譯 因此即使 main() 方法中只有 : double result = calculate (a, b) System.out.println(" 程式執行結束 "); 這兩行敘述, 程式依然可以通過編譯 只是當例外產生時程式會不正常的終止 台灣大學資訊工程系資訊系統訓練班 27

28 throws 敘述 (4) 如果方法中丟出來的例外是屬於 Checked Exception, 在呼叫該方法時就不能不去處理它 否則, 程式在編譯時就會產生 unreported exception 的編譯錯誤 例如 : 程式 9-5:Chap9/Throws2.java 01:public class Throws2 { 02: public static void main(string[] args){ 03: trytoaccess(); 04: System.out.println(" 程式執行結束 "); 05: } 06: 07: public static void trytoaccess() 08: throws IOException{ 09: System.out.println(" 嘗試使用 Method"); 10: } 11: } 則必需在呼叫 trytoaccess() 方法時使用 try-catch 程式才能通過編譯 例如 : try{ trytoaccess(); } catch (IOException e){} 台灣大學資訊工程系資訊系統訓練班 28

29 Call Stack 機制 在宣告方法時, 如果使用了 throws 關鍵字將可能產生的例外丟出, 那麼呼叫此方法的類別就必需使用 try-catch 來補捉例外 這種將例外一直往上層丟出, 直到該例外被處理為止的機制就稱為 Call Stack 機制 但如果呼叫此方法的類別又沒有處理產生的例外時, 程式會發生什麼樣的情況呢? 請參考下圖 : 假定主程式 main() 呼叫 A( ) 方法, 而 A( ) 方法中又呼叫了 B( ) 方法, 而 B( ) 方法中又呼叫了 C( ) 方法, 但目前, 各方法中都沒有設計 try-catch 的機制 如果 C( ) 方法中產生了例外, 此例外會往上丟給 B( ) 方法處理 如果無法處理, 該例外會再丟給 A( ) 方法來處理 同樣的, A( ) 如果無法處理, 該例外會再丟給 main( ) 方法來處理 最後則由 JVM 來處理接到的例外並且中止程式的執行 台灣大學資訊工程系資訊系統訓練班 29

30 8-2 自訂例外 台灣大學資訊工程系資訊系統訓練班 30

31 使用 throw 關鍵字 (1) 雖然 Java 語言已經提供了相當多的例外類別, 但有時候, 為了設計出更 User Friendly 的程式, 我們可能需要自己設計例外處理的機制 在探討如何自定例外之前, 我們要先了解 throw 關鍵字的使用 throw 關鍵字用在方法的內部, 請不要和用於方法宣告時的 throws 關鍵字混為一談 如果在方法內部想要丟出例外的類別物件時需使用 throw 關鍵字 為了能夠自定例外類別, 我們先了解 Exception 類別產生物件的方式 常用的 Exception 類別的建構子有 : Exception() 建構子 Exception(String message) Exception (String message, Throwable cause) Exception(Throwable cause) 作用建立一個 Exception 建立一個 Exception 物件, 並指定例外訊息為 message 建立一個 Exception 物件, 並指定例外訊息為 message, 同時將產生例外的原因 cause 傳入 建立一個 Exception 物, 同時將產生例外的原因 cause 傳入 throw 關鍵字可以用來丟出例外物件, 它可以丟出 Java 內部的例外物件, 也可以丟出自定的例外物件,throw 的語法如下 : throw 例外物件 ; throw new Exception (" 自定的例外訊息 "); // 丟出 Java 例外物件 // 丟出匿名的例外物件 台灣大學資訊工程系資訊系統訓練班 31

32 使用 throw 關鍵字 (2) 程式 9-6 : Chap9\Throw1.java 01: public class Throw1{ 02: public static void main(string[] args) { 03: trytocalculate(10, 0); 04: trytocalculate(10, 2); 05: } 06: 07: public static void trytocalculate(int x, int y) { 08: if (y == 0) { 09: try { 10: throw new Exception("Divided by Zero!!!"); 11: }catch (Exception e) { 12: System.out.println(e.toString()); 13: } 14: } else { 15: System.out.println("The Result is : " + x / y); 16: } 17: } 18: } 執行的結果為 : 台灣大學資訊工程系資訊系統訓練班 32

33 使用 throw 關鍵字 (3) 範例程式在第 10 行使用了 throw 來丟出一個自定的例外物件, 因為 throw 會產生例外物件, 所以程式必需使用 try-catch 來捕捉產生的例外 Exception 中的 除數不得為零!!! 的訊息會在例外物件產生時傳入該物件中 你也可以不需要直接處理這個例外物件, 但是要再將這個物件丟出來, 例如改寫範例程式的第 11~13 行為 : catch (Exception e) { throw e; } 如果是用這樣的處理方式, 則必需要有另一個程式來呼叫 main 方法, 並且在該程式中使用 try-catch 來處理例外 台灣大學資訊工程系資訊系統訓練班 33

34 自定例外類別 (1) 01: class MyException extends Exception{ 02: private int value; 03: MyException (int value){ 04: this.value = value; 05: } 06: public String tostring(){ 07: String s = " 本程式執行無效 \n" + 08: " 錯誤代碼為 " + value + " \n" + 09: " 請將此代碼告知管理人員 \n"; 10: return s; 11: } 12: } MyException 類別繼承自 Exception 類別, 第 3 行的建構子需要傳入一個整數值當作是自定的錯誤代碼 程式的第 6~11 行改寫了 tostring() 方法, 新的 tostring() 方法會顯示出錯誤代碼及相關的訊息 台灣大學資訊工程系資訊系統訓練班 34

35 自定例外類別 (2) 再來, 以下的程式碼示範如何丟出 MyException 類別的例外訊息 : 01: public static void trytocalculates (int x, int y){ 02: if (y == 0){ 03: try{ 04: throw new MyException(0); 05: } catch (MyException e){ 06: System.out.println(e.toString()); 07: } 08: } else { 09: System.out.println(" 結果為 : " + x / y); 10: } 11: } trytocalculates(int x, int y) 方法會計算兩數相除的結果, 但是除數 y 不可以為 0, 如果 y 的值為 0, 在程式的第 4 行會丟出 MyException 類別的例外, 並指定錯誤代碼為 0 程式的第 5 行會捕捉這個例外物件, 並且在第 6 行利用 tostring() 方法顯示錯誤訊息 台灣大學資訊工程系資訊系統訓練班 35

36 自定例外類別 (3) main() 的內容 : 程式 9-7:Chap9/Throws2.java 01: public class Throw2{ 02: public static void main (String[] args) { 03: trytocalculates(10, 0); 04: trytocalculates(10, 2); 05: } 06: } 第 3 行的程式碼由於傳入的參數會導致除數為 0 的情況, 該行程式會引發們定的 MyException 例外物件, 並顯示自訂的錯誤訊息 程式的執行結果為 : 台灣大學資訊工程系資訊系統訓練班 36

37 課堂練習 PT81 例外練習 (PT81.java): 設計一個程式在執行時需要輸入一個整數數值 請考慮可能產生的例外情況, 例如 : 未輸入數值, 數值格式不正確等情形 如果例外產生, 請使用 throw 的方式直接丟出例外, 並顯示相關訊息 如果沒有例外產生, 請利用該數值計算正方形的面積 台灣大學資訊工程系資訊系統訓練班 37

38 8-3 檔案處理 台灣大學資訊工程系資訊系統訓練班 38

39 串流 串流 (Stream) 將各類儲存媒體 (Floppy, HDD, CD- ROM ) 內的資料, 統一成固定格式, 以利讀取與寫入 輸入串流 輸出串流 台灣大學資訊工程系資訊系統訓練班 39

40 File 類別 (1) 在 JAVA 中, 檔案的讀 寫 在螢幕上顯示訊息 記憶體的存取, 或是網路資源的使用等動作, 都被視為 串流 (Stream) 串流 可以被視為資料輸出 輸入的通道 JAVA 將處理串流資料的相關類別放於 java.io 套件之中, 需事先引用這個套件 在實際探討串流資料處理之前, 我們先來了解 File 類別 嚴格說來, 它並不屬於串流的類別, 因為該類別中的方法並不會牽涉到檔案的讀寫, 但該類別會被用來提供檔案或是目錄的相關資訊, 包括了檔案的建立, 大小 修改日期 存取權限等資訊 等等 File 類別包含了三種型態的建構子 : 建構子 File(String pathname, String filename) File(String pathname) File(Object parent, String child) 作用 以上層的路徑名稱 parent, 並以 filename 字串的內容為檔案名稱, 建立新的 File 物件 將 pathname 的內容轉換為絕對路徑, 並在該路徑下建立新的 File 物件 以上層的路徑物件 parent, 以 child 字串的內容為子目錄的路徑或名稱, 建立新的 File 物件 台灣大學資訊工程系資訊系統訓練班 40

41 File 類別 (2) 在目前的目錄下建立一個參考到 test.txt 檔案的 File 物件 : File f1 = new File("test.txt"); File 類別也可以用來處理目錄, 例如 : File f2 = new File("c:\\TestDir"); 如果是在 Windows 系統下, 該程式碼會產生一個指向 c:\testdir 目錄的物件 會使用到 \\ 是因為在 Windows 系統下的目錄符號 \ 剛好是 Java 中跳脫字元的前置符號, 所以使用了 \\ 來代替實際的 \ 符號 當然, 如果你是要在 Linux 平台下執行 Java 程式, 那目錄符號要更改為 / 你也可以直接參考到指定目錄下的檔案, 例如在 windows 系統下以下的兩行程式都會參考到 c:\testdir\test.txt 檔案 : File f3 = new File("c:\\TestDir\\test.txt"); File f4 = new File("c:\\TestDir","test.txt"); 或者產生一個參考到目錄的 File 物件, 再利用該物件參考到檔案, 例如 : File f5 = new File("c:\\TestDir"); File f6 = new File( f5, "test.txt"); 台灣大學資訊工程系資訊系統訓練班 41

42 File 類別的方法 (1) File 類別也提供相當多的方法來處理檔案或是目錄, 有些方法單用於目錄或是檔案, 有些方法則是可以共用, 請參考下表 : 方法作用 boolean canread() 判斷是否可以根據提供的路徑讀取指定的檔案 如果可以, 則傳回 true, 如果不可以, 則傳回 false boolean canwrite() 判斷是否可以根據提供的路徑寫檔 如果可以, 則傳回 ture, 如果不可以, 則傳回 false boolean exists() 判斷指定的路徑下是否有指定的檔案 File getabsolutefile() String getabsolutepath() String getname() String getparent() boolean isdirectory() boolean isfile() long lastmodified() long length() File[] listfiles() boolean renameto(file dest) 根據 File 物件參考的內容, 取得指定的檔案參考 根據 File 物件參考的內容, 取得檔案的絕對路徑 根據 File 物件參考的內容, 取得目錄或是檔案的名稱, 但不會包含路徑根據 File 物件參考的內容, 取得上一層的路徑名稱 根據 File 物件參考的內容, 判斷是否為目錄 根據 File 物件參考的內容, 判斷是否為檔案 根據 File 物件參考的內容, 取得該檔案最後被修改的日期, 傳回毫秒值, 並以 1970 年一月一日零時為計算基準, 如果傳回 OL, 代表該檔案不存在根據 File 物件參考的內容, 取得檔案的長度 根據 File 物件參考的內容, 取得該路徑下所有的檔案名稱 將 File 物件參考的內容更改為指定的 dest 名稱 台灣大學資訊工程系資訊系統訓練班 42

43 File 類別的方法 (2) 通常我們會先用 isfile 方法來判斷物件是否為檔案, 再利用相關的方法來操作其他的需求 : 程式 10-2:Chap 10\File 2.java 01: import java.io.file; 02: import java.util.date; 03: 04: class File2{ 05: public static void main(string[] args) { 06: File f = new File("c:\\Work\\Chap10\\Test.java"); 07: System.out.println("f 物件是否存在 :"+ f.exists()); 08: System.out.println("f 物件是否為檔案 :"+ f.isfile()); 09: System.out.println("f 物件是否可以讀取 :"+ f.canread()); 10: System.out.println("f 物件是否可以寫入 :"+ f.canwrite()); 11: System.out.println("f 物件的實際名稱為 :"+ f.getname()); 12: System.out.println("f 物件的修改日期為 :"+ new Date(f.1astModified()); 13: System.out.println("f 物件的實際大小為 :"+ f.length() +"Bytes"); 14: System.out.println("f 物件的絕對路徑為 :"+ f.getabsolutepath()); 15: System.out.println("f 物件的路徑為 :"+ f.getparent()); 16: } 17: } 程式的執行結果為 : f 物件是否存在 :true f 物件是否為檔案 :true f 物件是否可以讀取 :true f 物件是否可以寫入 :true f 物件的實際名稱為 :Test.java f 物件的修改日期為 :Sun Oct 30 12:20:30 CST 2005 f 物件的實際大小為 :104 Bytes f 物件的絕對路徑為 :c:\work\chap10\test.java f 物件的路徑為 :c:\work\chap10 台灣大學資訊工程系資訊系統訓練班 43

44 File 類別的方法 (3) 用 java 模擬 Windows 的 dir 指令, 或 Unix 的 ls 指令 : 程式 10-3:Chap 10\File 3.java 01: import java.io.file; 02: 03: 04: class File3{ 05: public static void main(string[] args) { 06: File f = new File("C:\\java\\"); 07: File[] lists = f.listfiles(); 08: int i ; 09: 10: for (i = 0 ; i<lists.legngth-1 ; i++) ; 11: if (lists[i].isdirectory()) { 12: System.out.println("<Dir>\t"); 13: } else { 14: System.out.println(lists[i].getName()+"\t"+lists[i].length()+"Bytes"); 15: } 16: } 17: } 18: } 執行的結果類似 : File1.class File1.java File2.class File2.java 680 Bytes 319 Bytes 1587 Bytes 729 Bytes 台灣大學資訊工程系資訊系統訓練班 44

45 File 類別的方法 (4) 更改檔名 : import java.io.*; public class FileRename { public static void main(string[] args) { File fs = new File(args[0]); File fd = new File(args[1]); } } if (fs.exists()) { if (!fd.exists()) { if (fs.renameto(fd)) { System.out.println(fs.getName() + " 已改名為 " + fd.getname()); System.out.println("1 file(s) has been renamed!"); } } } 台灣大學資訊工程系資訊系統訓練班 45

46 字元串流的處理 JAVA 的緩衝處理 緩衝資料流 (Buffered Stream) 藉由一塊記憶體緩衝區來連結 I/O 資料流, 並讓資料的操作能夠增加效能 相關類別 InputStreamReader BufferedReader 台灣大學資訊工程系資訊系統訓練班 46

47 BufferedReader (1) 我們也可以使用 BufferedReader 來儲存自鍵盤輸入的資料, 藉由該類別中的 readline 方法可以一次讀取整行的資料, 請參考以下的範例 : 程式 10-8:Chap 10\ InputStreamReader 2.java 01: import java.io.*; 02: 03: public class InputStreamReader 2 { 04: public static void main(string[] args) { 05: InputStreamReader ir = new InputStreamReader(System.in); 06: BufferedReader br = new BufferedReader(ir); 07: float salary; 08: 09: try{ 10: System.out.print(" 請輸入月薪 :"); 11: salary = Float.parseFloat(br.readLine()); 12: System.out.print(" 你的年薪是 :"+salary*12); 13: } catch (IOException e) { 14: System.out.println(e.toString()); 15: } catch (Exception e) { 16: System.out.println(e.toString()); 17: } 18: } 19: } 台灣大學資訊工程系資訊系統訓練班 47

48 BufferedReader (2) 程式的執行結果為 : 請輸入月薪 :35 你的年薪是 :420.0 程式的第 6 行將 InputStreamReader 物件轉為 BufferedReader 物件, 而在程式的第 11 行則使用 readline 方法來讀取輸入的整行資料 由於讀入的資料是 String 型態的資料, 所以, 再使用 Float.parseFloat() 方法來將資料轉為 float 型態 台灣大學資訊工程系資訊系統訓練班 48

49 課堂練習 PT82 串流練習 (PT82.java): 以 InputStreamReader 寫一個程式可以分別詢問使用者他的 : 名字 年齡 性別 輸入完後再將結果印在畫面 : Hi 名字 ( 先生 / 小姐 ) 你好, 你今年年齡歲 台灣大學資訊工程系資訊系統訓練班 49

50 讀寫檔案 JAVA 中讀寫檔案的方法有許多種 在此介紹英文與中日韓文語系中最常使用的兩種類別工具 : 英文讀寫 : DataInputStream / DataOutputStream 中日韓文讀寫 : FileReader / FileWriter 台灣大學資訊工程系資訊系統訓練班 50

51 Input/Output Stream DataInputStream 和 DataOutputStream 類別是位元資料處理的串接類別 DataInputStream 與 DataOutputStream 須藉由 FileInputStream 與 FileOutputStream 對檔案做存取 假設有一檔案 file1.txt 內容為 : 台灣大學資訊工程系資訊系統訓練班 51

52 DataInputStream 以下的範例示範如何使用 DataInputStream 類別, 並讀取 file1.txt 檔案中的資料 : 程式 10-14:Chap 10\ DataInputStream1.java import java.io.*; class DataInputStream1 { public static void main(string[] args) throws IOException { FileInputStream fis = new FileInputStream("file1.txt"); DataInputStream dis = new DataInputStream(fis); int i; } } while((i = dis.read())!= -1) { System.out.print((char) i); } dis.close(); fis.close(); 程式的執行結果為 : You will always on my mind.?_??????f??±x???n?? 台灣大學資訊工程系資訊系統訓練班 52

53 DataOutputStream 以下的範例示範如何使用 DataOutputStream 類別, 並將資料寫入 File2.txt 檔案中 : 程式 10-15:Chap 10\ DataOutputStream 1.java 01: import java.io.*; 02: 03: public class DataOutputStream 1 { 04: public static void main (String[] args) throws IOException { 05: FileOutputStream fos = new FileOutputStream("file2.txt"); 06: DataOutputStream dos = new DataOutputStream(fos); 07: 08: byte[] c = {'J', 'a', 'v', 'a'}; 09: dos.write( c); 10: 11: fos.close(); 12: dos.close(); 13: } 14: } 範例程式的第 5 行建構出一個 FileOutputStream 物件, 並將此物件傳給 DataOutputStream 物件 程式的第 9 行使用 write() 方法將資料寫入 File2.txt 檔案中 台灣大學資訊工程系資訊系統訓練班 53

54 FileReader/FileWrite 類別 不論是 FileInputStream FileOutputStream DataInputSteam DataOutputStream 類別, 它們都是針對位元組資料所設計的類別 對於亞洲體系的文字, 由於使用的是雙位元的資料, 這些類別並無法很完善的處理這些類型的資料 如果要處理雙位元的資料, 我們必需使用 FileReader BufferedReader FileWrite BufferedWriter 等類別 處理方式請參考下圖 : File 類別 File 類別 台灣大學資訊工程系資訊系統訓練班 54

55 FileReader 類別 以下的範例示範如何使用 FileReader 類別, 並讀取 file1.txt 檔案中的資料 : 程式 10-16:Chap 10\ FileReader1.java 01: import java.io.*; 02: 03: public class FileReader1 { 04: public static void main (String[] args) throws IOException { 05: File f = new File("file1.txt"); 06: FileReader fr = new FileReader(f); 07: int i; 08: 09: while((i = fr.read())!=-1) { 10: 11: System.out.print((char) i); 12: } 13: fr.close(); 14: } 15: } 程式執行的結果為 : You will always on my mind. 北風傳來了熟悉的聲音 台灣大學資訊工程系資訊系統訓練班 55

56 FileWriter 類別 以下的範例示範如何使用 FileWrite 類別, 並將字串寫入 file3.txt 檔案中的資料 : 程式 10-17:Chap 10\ FileWriter 1.java 01: import java.io.*; 02: 03: public class FileWriter 1 { 04: public static void main (String[] args) throws IOException { 05: File f = new File("file3.txt"); 06: FileWriter fw = new FileWriter(f); 07: 08: String str = "Java is easy to learn.\n"; 10: 11: fw.write(str); 12: fw.close(); 13: } 14: } 台灣大學資訊工程系資訊系統訓練班 56

57 課堂練習 PT83 檔案輸出入練習 (PT83.java): 假定某位學生的紀錄如下 : 姓名 :name, 字串型態, 值為 Alex 數學成績 :mathrecord,int 型態, 值為 95 國文成績 :chnrecord,int 型態, 值為 90 英文成績 :engrecord,int 型態, 值為 94 請建構串流物件 out, 並將該筆記錄寫入 record.txt 檔案中, 再將 record.txt 檔案的內容讀出, 並顯示在螢幕上 台灣大學資訊工程系資訊系統訓練班 57

58 8-4 序列化處理 台灣大學資訊工程系資訊系統訓練班 58

59 序列化處理 (1) 序列化 : 將物件寫進串流中 ObjectInputStream 反序列化 : 將被寫進串流中的物件讀出 ObjectOutputStream 要序列化某個類別, 則該類別須實作 Serializable 介面 台灣大學資訊工程系資訊系統訓練班 59

60 序列化的處理 (2) 程式 10-18:Chap 10\ Employee.java 01: import java.io.*; 02: 03: public class Employee implements Serializable { 04: private String name; 05: private String ID; 06: private float salary; 07: 08: Employee(String name, String ID, float salary) { 09: this.name = name; 10: this.id = ID; 11: this.salary = salary; 12: } 13: public String getname(){ 14: return name; 15: } 16: public String getid() { 17: return ID; 18: } 19: public float getsalary() { 20: return salary; 21: } 22: } 台灣大學資訊工程系資訊系統訓練班 60

61 序列化的處理 (3) 程式 10-19:Chap 10\ WriteData.java 01: import java.io.*; 02: 03: public class WriteData { 04: public static void main(string[] args) { 05: Employee[] s = new Employee[2]; 06: 07: s[0] = new Employee("Alex","001", f); 08: System.out.println(s[0].getName()); 09: System.out.println(s[0].getID()); 10: System.out.println(s[0].getSalary()); 11: 12: s[1] = new Employee("Ivy","002", f); 13: System.out.println(s[1].getName()); 14: System.out.println(s[1].getID()); 15: System.out.println(s[1].getSalary()); 16: 17: try{ 18: FileOutputStream fs = new FileOutputStream("Employee.txt"); 19: ObjectOutputStream out = new ObjectOutputStream(fs); 20: out.writeobject(s); 21: out.close(); 22: fs.close(); 23: } catch (IOException e){ 24: System.out.println(e.toString()); 25: } 26: } 27: } 台灣大學資訊工程系資訊系統訓練班 61

62 序列化的處理 (4) 程式的執行結果為 : Alex Ivy 程式執行後你會在目錄下找到 Employee.txt 文字檔, 但無法直接瀏覽該檔的內容 範例程式的第 5 行宣告一個 Employee 陣列, 可用來儲存 2 筆資料 而程式的第 7~15 行分別建立 Employee 物件, 並且將物件的內容顯示在螢幕上 程式的第 18~22 行是本範例程式的重點 第 18 行宣告了一個 FileOutputStream 物件, 用來將內容寫入 Employee.txt 檔案中 再於第 19 行程式中將 FileOutputStream 物件傳遞給 ObjectOutputStream, 並建立新的 ObjectOutputStream 物件 第 20 行程式中, 使用 ObjectOutputStream 物件的 WriteObject 方法將 Employee 陣列的內容寫入 Employee.txt 檔案中 寫入的方式很簡單, 但請注意, 程式中寫入 Employee 陣列的資料, 因此在讀取資料時, 也必需將檔案的內容輸入 Employee 陣列中, 否則會因型態不符而產生 classcastexception 的例外 台灣大學資訊工程系資訊系統訓練班 62

63 序列化的處理 (5) 程式 10-20:Chap 10\ ReadData.java 01: import java.io.*; 02: 03: public class ReadData { 04: public static void main(string[] args) { 05: try{ 06: FileInputStream fs = new FileInputStream("Employee.txt"); 07: ObjectInputStream in = new ObjectInputStream(fs); 08: 09: Employee[] s = (Employee[] ) in.readobject(); 10: 11: for(int i = 0 ; i<s.length; i++) { 12: System.out.println(s[i].getName()); 13: System.out.println(s[i].getID()); 14: System.out.println(s[i].getSalary()); 15: } 16: in.close(); 17: fs.close(); 18: } catch (Exception e) { 19: System.out.println( e.tostring()); 20: } 21: } 22: } 台灣大學資訊工程系資訊系統訓練班 63

64 序列化的處理 (6) 程式的執行結果為 : Alex Ivy 台灣大學資訊工程系資訊系統訓練班 64

65 回家作業 HW8 (1) 1. 庫存系統練習 (HW81.java): 假設有一個庫存系統, 在存貨類別的處理方面, 庫存的計算可能會有兩例外狀態 : 一種是庫存數量小於 0(NegativeStockException), 另一種是需要提出的貨品數量大於庫存量 (ShortStockExctpion) 請設計上述兩個例外類別, 並使用 throw 來測試例外 2. 存款利息計算程式 (HW82.java) : 假定有以下的資料型態 : String name; float premium; float irate; // 儲存姓名的資料 // 代表銀行存款的本金數額 // 代表銀行的存款利率 請設計一個程式, 使用者可以由鍵盤依次輸入上述的資料, 輸入完成後, 再將輸入的內容顯示在螢幕上, 並依輸入的本金和利率, 再計算一年的存款利息 台灣大學資訊工程系資訊系統訓練班 65

66 回家作業 HW8 (2) 3. 猜數字程式 v2 (HW83.java): 請改進 HW61.java 的猜數字程式 以 BufferedReader 的方法讓使用者可以一直猜, 直到猜對正確答案為止 台灣大學資訊工程系資訊系統訓練班 66

67 繳交回家作業 PT8 ( 課堂練習 ) 與 HW8 ( 回家作業 ) 請一起繳交 把相關 *.java 檔案以 zip 或 rar 壓縮並取名為 學號.zip 或 學號.rar 並附件到 中寄到 : 主旨 :[JAVA245][hw][8] 姓名 收件人 Deadline: 下一次上課前 台灣大學資訊工程系資訊系統訓練班 67

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

Microsoft Word - 投影片ch13

Microsoft Word - 投影片ch13 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十三章例外處理 本章學習目標了解什麼是例外處理認識例外類別的繼承架構認識例外處理的機制學習如何撰寫例外類別 例外處理 13-2 13.1 例外的基本觀念 在執行程式時, 經常發生一些不尋常的狀況 例如 : (1) 要開啟的檔案不存在 (2) 陣列的索引值超過了陣列容許的範圍 (3) 使用者輸入錯誤 Java 把這類不尋常的狀況稱為

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 Java 程 序 设 计 实 验 指 导 书 商 丘 学 院 计 算 机 科 学 与 技 术 学 院 张 艳 晓 目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 实 验

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

2009年9月全国计算机等级考试二级Java真题及答案

2009年9月全国计算机等级考试二级Java真题及答案 2009 年 9 月 全 国 计 算 机 等 级 考 试 二 级 Java 真 题 及 答 案 [ 录 入 者 :NCRE100 时 间 :2009-10-08 19:41:34 作 者 : 来 源 :NCRE100.com 浏 览 :1421 次 ] 2009 年 9 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟,

More information

一、

一、 考試時間 : 1 小時 30 分座號 : 全五頁第一頁 注意 : 禁止使用電子計算器 不必抄題, 作答時請將試題題號及答案依照順序寫在試卷上, 於本試題上作答者, 不予計分 一 就下列 Java 程式片斷中加入一個 for 迴圈, 使其印出右側結果 (15 分 ) public class AllNumbers number square cube 0 0 0 public static void

More information

《大话设计模式》第一章

《大话设计模式》第一章 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜

More information

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;

More information

untitled

untitled 1 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object 參 類 都 object 參 object Boxing 參 boxing

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 簡介 Java 10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD 10 SCJD 10-3 Java Java SCJD 7 Swing RMI 10.1.1 The Assignment The Essay 9 10 10-4 SCJP SCJD 90 10.1.2 SCJP Java 90 120 Swing 10

More information

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class 踩地雷遊戲 高慧君南港高中 開啟專案 MineSweep 任務一 : 產生 30X20 個磚塊編輯 Table 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import java.util.arraylist; Write a description of class MyWorld

More information

<4D6963726F736F667420576F7264202D20BAF4BADEA457BDD2B1D0A7F75F4A415641B57BA6A1B2D52E646F63>

<4D6963726F736F667420576F7264202D20BAF4BADEA457BDD2B1D0A7F75F4A415641B57BA6A1B2D52E646F63> 電 腦 網 路 與 程 式 課 程 JAVA 物 件 導 向 程 式 設 計 JAVA 程 式 組 教 材 授 課 人 員 : 黃 怡 傑 目 錄 Ch1. 學 習 JAVA 的 第 一 堂 課 程 式 的 邏 輯 1.1 coding 的 習 慣 1.2 開 始 學 習 JAVA 前 的 準 備 1.3 第 一 個 JAVA 程 式 1.4 資 料 型 別 1.5 運 算 子 1.6 迴 圈 1.7

More information

96年特種考試第一次司法人員考試試題解答

96年特種考試第一次司法人員考試試題解答 106 年公務人員特種考試警察人員 一般警察人員考試及 106 年特種考試交通事業鐵路人員考試試題 考試別 : 鐵路人員考試 等別 : 員級考試 類科 ( 別 ): 資訊處理 科目 : 程式設計概要 考試時間 :1.5 小時 一 就下列 Java 程式片斷中加入一個 for 迴圈, 使其印出右側結果 (15 分 ) public class AllNumbers number square cube

More information

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入 100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入

More information

View:Struts 提 供 了 action form 创 建 form bean, 用 于 在 controller 和 view 间 传 输 数 据 此 外,Struts 提 供 了 自 定 义 JSP 标 签 库, 辅 助 开 发 者 用 JSP 创 建 交 互 式 的 以 表 单 为 基

View:Struts 提 供 了 action form 创 建 form bean, 用 于 在 controller 和 view 间 传 输 数 据 此 外,Struts 提 供 了 自 定 义 JSP 标 签 库, 辅 助 开 发 者 用 JSP 创 建 交 互 式 的 以 表 单 为 基 一 你 对 MVC 的 理 解,MVC 有 什 么 优 缺 点? 结 合 Struts, 说 明 在 一 个 Web 应 用 如 何 去 使 用? 答 : MVC 设 计 模 式 ( 应 用 观 察 者 模 式 的 框 架 模 式 ) M: Model(Business process layer), 模 型, 操 作 数 据 的 业 务 处 理 层, 并 独 立 于 表 现 层 (Independent

More information

回 页 首 相 关 的 类 和 接 口 要 了 解 Java 动 态 代 理 的 机 制, 首 先 需 要 了 解 以 下 相 关 的 类 或 接 口 : java.lang.reflect.proxy: 这 是 Java 动 态 代 理 机 制 的 主 类, 它 提 供 了 一 组 静 态 方 法

回 页 首 相 关 的 类 和 接 口 要 了 解 Java 动 态 代 理 的 机 制, 首 先 需 要 了 解 以 下 相 关 的 类 或 接 口 : java.lang.reflect.proxy: 这 是 Java 动 态 代 理 机 制 的 主 类, 它 提 供 了 一 组 静 态 方 法 Java 动 态 代 理 机 制 分 析 及 扩 展, 第 1 部 分 引 言 Java 动 态 代 理 机 制 的 出 现, 使 得 Java 开 发 人 员 不 用 手 工 编 写 代 理 类, 只 要 简 单 地 指 定 一 组 接 口 及 委 托 类 对 象, 便 能 动 态 地 获 得 代 理 类 代 理 类 会 负 责 将 所 有 的 方 法 调 用 分 派 到 委 托 对 象 上 反

More information

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Microsoft PowerPoint - Class5.pptx

Microsoft PowerPoint - Class5.pptx C++ 程式初探 V 2015 暑期 ver. 1.0.1 C++ 程式語言 大綱 1. 大量檔案讀取 & 計算 2. 指標 3. 動態記憶體 & 動態陣列 4. 標準函式庫 (STL) vector, algorithm 5. 結構與類別 2 大量檔案讀取 & 計算 若目前有一個程式將讀取純文字文件 (.txt) 中的整數, 並將該文件中的整數有小到大排序後, 儲存到另外一個新的純文字件中 假設有

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

Microsoft PowerPoint - course2.ppt

Microsoft PowerPoint - course2.ppt Java 程 式 設 計 基 礎 班 (2) 莊 坤 達 台 大 電 信 所 網 路 資 料 庫 研 究 室 Email: doug@arbor.ee.ntu.edu.tw Class 2 1 回 顧 Eclipse 使 用 入 門 Class 2 2 Lesson 2 Java 程 式 語 言 介 紹 Class 2 3 Java 基 本 知 識 介 紹 大 小 寫 有 差 (Case Sensitive)

More information

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制 Standard I/O & Flow Control Outline 2 Standard I/O Branch if ~ else switch ~ case Loop For while do ~ while Interrupt Break continue Conclusion Standard I/O 3 Definition: 將資料印到螢幕上 Java 標準輸出指令 System.out.println(

More information

Android Service

Android Service Android Service- 播放音樂 建國科技大學資管系 饒瑞佶 2013/7 V1 Android Service Service 是跟 Activity 並行 一個音樂播放程式若沒使用 Service, 即使按 home 鍵畫面離開之後, 音樂還是照播 如果再執行一次程式, 新撥放的音樂會跟先前撥放的一起撥, 最後程式就會出錯 執行中的程式完全看不到! 但是, 寫成 Service 就不同了

More information

Microsoft PowerPoint - 14Threads.ppt

Microsoft PowerPoint - 14Threads.ppt Threads Outline Introduction to Threads How to create Thread extend Thread implement Runnable interface Synchronization What is thread? 定義 : 程式的執行軌跡 Single Thread Multi-Thread 依序執行 int x, y; int z; x =

More information

Microsoft Word - JAVA Programming Language Homework I ans

Microsoft Word - JAVA Programming Language Homework I ans JAVA Programming Language Homework I - OO concept Student ID: Name: 1. Which of the following techniques can be used to prevent the instantiation of a class by any code outside of the class? A. Declare

More information

Java第一天 2007年4月23日

Java第一天      2007年4月23日 Java 第 一 天 2007 年 4 月 23 日 1 Java 之 父 Golsling 1995 年 5 月 23 日 Java 诞 生 1998 年 12 月 1.2 版 本 Java2 J2SE J2EE J2ME 2004 年 12 月 1.5 版 本 (5.0) Java JavaSE JavaEE JavaME 2 Java SE --- Java 标 准 平 台 Java EE ---

More information

書面

書面 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 5.4 互動功能畫面 程式碼請參考附件-程式三 在進入互動頁面時 會執行setAllText()依寵物狀態數值來 設定狀態文字與頭像 並且依心情決定是否要不要播放音效 觸摸的區域 由於是自己寫的 view 所以並未透過xml來設置 而是透過Layut.addview()來動態新增

More information

2009年下半年软件设计师下午试题

2009年下半年软件设计师下午试题 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2009 年 下 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2.

More information

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

《面向对象程序设计A》课程教学大纲Ⅱ4

《面向对象程序设计A》课程教学大纲Ⅱ4 Java 程 序 设 计 课 程 教 学 大 纲 Ⅱ5 课 程 代 码 : 课 程 名 称 :Java 程 序 设 计 Java Programming 学 分 :5 总 学 时 :80 ( 其 中 : 理 论 学 时 :48 实 验 ( 上 机 ) 学 时 :32) 先 修 课 程 : 2106010190 大 学 计 算 机 信 息 技 术 基 础 适 用 对 象 : 本 二 工 科 非 计 算

More information

Microsoft PowerPoint - ch15.ppt

Microsoft PowerPoint - ch15.ppt Exception Handling Exception handling Exception Indication of problem during execution E.g., divide by zero Chained exceptions 1 Exception-Handling Overview Uses of exception handling Process exceptions

More information

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 与 C++ 不 同,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 Java 世 界 中, 所 有 事 物 都 是 Object 1. 通 过

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 与 C++ 不 同,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 Java 世 界 中, 所 有 事 物 都 是 Object 1. 通 过 玩 转 Object 不 理 解, 就 无 法 真 正 拥 有 歌 德 按 其 实 而 审 其 名, 以 求 其 情 ; 听 其 言 而 查 其 累, 无 使 放 悖 ( 根 据 实 际 明 辨 名 称, 以 便 求 得 真 实 情 况 ; 听 取 言 辞 后 弄 明 它 的 类 别, 不 让 它 混 淆 错 乱 ) 三 玩 转 Object 大 围 山 人 玩 转 Object...1 1. 通

More information

内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally 6.5 throw 语句与 throws 子句 6.6 自定义异常类 6.7 异常处理代码块嵌套 6.8 错误与断言 6.9 本章小结 6.10 实训 6: 除法运算程序

内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally 6.5 throw 语句与 throws 子句 6.6 自定义异常类 6.7 异常处理代码块嵌套 6.8 错误与断言 6.9 本章小结 6.10 实训 6: 除法运算程序 第 6 章除法运算 异常处理 能力目标 : 学会使用 try-catch-finally 代码块处理异常 学会使用 throw 语句主动抛出异常, 使用 throws 子句从方法声明中抛出异常 理解自定义异常类, 了解断言语句 能运用异常处理机制编写整数 实数除法运算程序 内容介绍 6.1 任务预览 6.2 异常 6.3 异常种类与层次结构 6.4 异常处理代码块 try-catch-finally

More information

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 是 有 别 于 C++,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 像 Java 这 样 纯 粹 的 面 向 对 象 语 言 中, 所 有

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 是 有 别 于 C++,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 像 Java 这 样 纯 粹 的 面 向 对 象 语 言 中, 所 有 玩 转 Object 不 理 解, 就 无 法 真 正 拥 有 歌 德 按 其 实 而 审 其 名, 以 求 其 情 ; 听 其 言 而 查 其 累, 无 使 放 悖 ( 根 据 实 际 明 辨 名 称, 以 便 求 得 真 实 情 况 ; 听 取 言 辞 后 弄 明 它 的 类 别, 不 让 它 混 淆 错 乱 ) 三 玩 转 Object 大 围 山 人 玩 转 Object...1 1. 通

More information

Microsoft PowerPoint - ch7_1 DA class

Microsoft PowerPoint - ch7_1 DA class Quiz 1. Describe the similarities and differences of Tester class and GUI class 2. What is the function of GUI class? 3. What is the function of PD(problem domain) class? 4. How does a GUI class interact

More information

计 算 机 系 统 应 用 2013 年 第 22 卷 第 7 期 器 所 做 的 工 作 实 质 是 把 类 文 件 从 硬 盘 读 取 到 内 存 中. 对 于 Java 中 的 类 大 致 可 以 分 为 三 种 : Java 系 统 核 心 类

计 算 机 系 统 应 用  2013 年 第 22 卷 第 7 期 器 所 做 的 工 作 实 质 是 把 类 文 件 从 硬 盘 读 取 到 内 存 中. 对 于 Java 中 的 类 大 致 可 以 分 为 三 种 : Java 系 统 核 心 类 1 Java 动 态 类 加 载 机 制 分 析 及 其 应 用 崔 行 臣, 赵 佟 ( 山 东 广 播 电 视 大 学 现 代 教 育 技 术 中 心, 济 南 250014) 摘 要 : Java 虚 拟 机 (JVM) 中 的 类 加 载 机 制 可 以 在 Java 应 用 程 序 运 行 期 间 动 态 加 载 类 文 件, 而 不 影 响 其 它 功 能 模 块 的 正 常 运 行.

More information

软件设计师

软件设计师 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2009 年 下 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2.

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式]

Microsoft PowerPoint - EmbSys101_Java Basics.ppt [相容模式] Java Basics Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan chanhl@maili.cgu.edu.twcgu 執行環境 - eclipse 點選 eclipse 軟體執行檔 設定工作路徑 eclipse 開啟 2 建置 Java 專案 File New project

More information

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检 2016 年 上 半 年 软 件 设 计 师 考 试 真 题 ( 下 午 题 ) 下 午 试 题 试 题 一 ( 共 15 分 ) 阅 读 下 列 说 明 和 图, 回 答 问 题 1 至 问 题 4, 将 解 答 填 入 答 题 纸 的 对 应 栏 内 说 明 某 会 议 中 心 提 供 举 办 会 议 的 场 地 设 施 和 各 种 设 备, 供 公 司 与 各 类 组 织 机 构 租 用 场

More information

Java ¿ª·¢ 2.0: Óà Hadoop MapReduce ½øÐдóÊý¾Ý·ÖÎö

Java ¿ª·¢ 2.0: Óà Hadoop MapReduce ½øÐдóÊý¾Ý·ÖÎö 中 文 登 录 ( 或 注 册 ) 技 术 主 题 软 件 下 载 社 区 技 术 讲 座 搜 索 developerworks developerworks 技 术 主 题 Java technology 文 档 库 Java 开 发 2.0: 用 Hadoop MapReduce 进 行 大 数 据 分 析 成 堆 的 数 据 如 何 变 成 信 息 金 矿 Andrew Glover, 作 家

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

Microsoft Word - Java Socket 連線的建立課程_柯志亨老師_電子書.doc

Microsoft Word - Java Socket 連線的建立課程_柯志亨老師_電子書.doc 第五章 Java Socket 連線的建立 < 學習目標 > 學會使用 Java 實作基本的 Socket 連線並傳送訊息 5-1 認識 Socket 所有的網路應用程式, 都是以 Socket 為基礎, 它的功能是在兩台電腦之間建立網路連線, 並能夠傳送與接收資料 Socket 指的是兩個程序 (process) 透過網路溝通的端點, 要建立 Socket 連線, 一般來說需要兩個資訊, 一個是

More information

附录J:Eclipse教程

附录J:Eclipse教程 附 录 J:Eclipse 教 程 By Y.Daniel Liang 该 帮 助 文 档 包 括 以 下 内 容 : Eclipse 入 门 选 择 透 视 图 创 建 项 目 创 建 Java 程 序 编 译 和 运 行 Java 程 序 从 命 令 行 运 行 Java Application 在 Eclipse 中 调 试 提 示 : 在 学 习 完 第 一 章 后 使 用 本 教 程 第

More information

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

北 风 网 讲 师 原 创 作 品 ---- 仅 供 学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见

北 风 网 讲 师 原 创 作 品 ---- 仅 供  学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见 北 风 网 讲 师 原 创 作 品 ---- 仅 供 www.ibeifeng.com 学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见 者 远 ; 顺 风 而 呼, 声 非 加 疾 也, 而 闻 者 彰 假 舆 马 者, 非 利 足 也,

More information

Microsoft Word - 封面

Microsoft Word - 封面 Java 程 序 设 计 实 践 教 程 刘 万 军 梁 清 华 王 松 波 宋 强 编 著 清 华 大 学 出 版 社 北 京 内 容 简 介 Java 是 一 种 面 向 对 象 的 新 型 编 程 语 言, 应 用 非 常 广 泛 本 书 详 细 介 绍 了 Java 语 言 的 基 础 知 识, 数 据 类 型 运 算 符 和 表 达 式, 程 序 控 制 语 句, 类 对 象 和 方 法,

More information

Microsoft Word - 11.doc

Microsoft Word - 11.doc 除 錯 技 巧 您 將 於 本 章 學 到 以 下 各 項 : 如 何 在 Visual C++ 2010 的 除 錯 工 具 控 制 下 執 行 程 式? 如 何 逐 步 地 執 行 程 式 的 敘 述? 如 何 監 看 或 改 變 程 式 中 的 變 數 值? 如 何 監 看 程 式 中 計 算 式 的 值? 何 謂 Call Stack? 何 謂 診 斷 器 (assertion)? 如 何

More information

JAVA String常用APi

JAVA String常用APi JAVA String 常 用API 2015 年 5 月13 日 星 期 三 ------------------------------------------ String 类 的 特 点 : 字 符 串 对 象 一 旦 被 初 始 化 就 不 会 被 改 变 abc 存 储 在 字 符 串 常 量 池 中 Java 的 核 心 类 包 是 java.lang eclipse:ctrl+ 方

More information

投影片 1

投影片 1 Chap 8 繼承 抽象類別與介面 8-1 類別的繼承 8-2 介面 8-3 介面的繼承 8-4 抽象類別 8-5 抽象類別與介面 8-6 常數類別 8-1 類別的繼承 8-1-1 類別架構 8-1-2 類別的繼承 8-1-3 覆寫和隱藏父類別的方法 8-1-4 隱藏父類別的成員變數 8-1-5 使用父類別的建構子 8-1-1 類別架構 - 繼承關係 類別的繼承關係可以讓我們建立類別架構, 在 UML

More information

Java 1 Java String Date

Java 1 Java String Date JAVA SCJP Java 1 Java String Date 1Java 01 Java Java 1995 Java Java 21 Java Java 5 1-1 Java Java 1990 12 Patrick Naughton C++ C (Application Programming Interface API Library) Patrick Naughton NeXT Stealth

More information

1. 访 问 最 新 发 行 公 告 信 息 jconnect for JDBC 7.0 1. 访 问 最 新 发 行 公 告 信 息 最 新 版 本 的 发 行 公 告 可 以 从 网 上 获 得 若 要 查 找 在 本 产 品 发 布 后 增 加 的 重 要 产 品 或 文 档 信 息, 请 访

1. 访 问 最 新 发 行 公 告 信 息 jconnect for JDBC 7.0 1. 访 问 最 新 发 行 公 告 信 息 最 新 版 本 的 发 行 公 告 可 以 从 网 上 获 得 若 要 查 找 在 本 产 品 发 布 后 增 加 的 重 要 产 品 或 文 档 信 息, 请 访 发 行 公 告 jconnect for JDBC 7.0 文 档 ID:DC74874-01-0700-01 最 后 修 订 日 期 :2010 年 3 月 2 日 主 题 页 码 1. 访 问 最 新 发 行 公 告 信 息 2 2. 产 品 摘 要 2 3. 特 殊 安 装 说 明 2 3.1 查 看 您 的 jconnect 版 本 3 4. 特 殊 升 级 指 导 3 4.1 迁 移 3

More information

Microsoft Word - 第6章.doc

Microsoft Word - 第6章.doc 100 第 6 章 继 承 第 6 章 继 承 继 承 是 面 向 对 象 编 程 的 重 要 特 征 之 一 顾 名 思 义, 继 承 就 是 在 现 有 类 的 基 础 上 构 建 新 类 以 满 足 新 的 要 求 在 继 承 过 程 中, 新 的 类 继 承 原 来 的 方 法 和 实 例 变 量, 并 且 能 添 加 自 己 的 方 法 和 实 例 变 量 在 本 章 中 主 要 讲 解

More information

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B 25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018

More information

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc

Microsoft Word - 97.01.30軟體設計第二部份範例試題_C++_ _1_.doc 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 範 例 試 題 (C++) 試 題 編 號 :11900-920201-4 審 定 日 期 : 94 年 7 月 1 日 修 訂 日 期 : 96 年 2 月 1 日 97 年 1 月 30 日 ( 第 二 部 份 ) 電 腦 軟 體 設 計 乙 級 技 術 士 技 能 檢 定 術 科 測 試 應 檢 參 考 資 料 壹 試

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

93年各縣國中教師甄試最新考情.doc

93年各縣國中教師甄試最新考情.doc 93 7/8()~7/13() 7/11()~7/13() 7/17() 7/18() 7/18() 7/19() 7/21() 40% 20%( ( )) 20%( ) 1 35% 25% ( ) 70% 10%( ) 60% 1 20% 10% ( ) 6/1()~6/11() 6/12()~6/14() 6/19() 6/21() 6/26() 6/26()22:00 7/3() 40%( )

More information

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089

Chapter 3 Camera Raw Step negative clarity +25 ] P / Step 4 0 ( 下一頁 ) Camera Raw Chapter 3 089 Photoshop CC Camera Raw Photoshop Camera Raw Step 1 3 1 2 3 SCOTT KELBY Step 2 B Camera Raw 088 Chapter 3 Camera Raw Chapter 3 Camera Raw Step 3-4 -100 negative clarity +25 ] P / -75-50 Step 4 0 ( 下一頁

More information

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

(Microsoft Word - \272\364\263q\245|\244A_49636107_\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc) SCJP (Oracle Certified Professional, Java SE5/6 Programmer) 學 制 / 班 級 : 四 年 制 / 網 通 四 乙 指 導 老 師 : 方 信 普 老 師 學 生 學 號 / 姓 名 : 49636107 蘇 建 瑋 繳 交 年 份 : 100 年 6 月 一 SCJP 介 紹 SCJP 是 Sun Certified Java Programmer

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

AutoCAD 用戶如何使用 ArchiCAD

AutoCAD 用戶如何使用 ArchiCAD AutoCAD 用戶如何使用 ArchiCAD AutoCAD用戶如何使用ArchiCAD ( 中文版 ) 由 Scott MacKenzie, Simon Gilbert, Geoffrey Moore Langdon, David Byrnes, Ralph Grabowski 編寫 龍庭資訊有限公司 1/73 - 2. 3. 4. -

More information

Microsoft Word - ACL chapter02-5ed.docx

Microsoft Word - ACL chapter02-5ed.docx 第 2 章神奇的質數 2.1.1 什麼是質數 1 1 1 打下好基礎 - 程式設計必修的數學思維與邏輯訓練 1 1 0 10 2 3 5 7 4 6 8 9 10 4 10000 1229 1000 168 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131

More information

二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲

二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲 -1 圓方程式 第 章 二次曲線 38 二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲線合稱為圓錐曲線 因為在平面坐標 系中 其對應的方程式均為二元二次式

More information

OOP with Java 通知 Project 6: 5 月 24 日晚 9 点

OOP with Java 通知 Project 6: 5 月 24 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 5 月 24 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

PowerPoint 簡報

PowerPoint 簡報 Paint 繪圖板 JAVA 程式設計 指導老師 : 鄞宗賢 組員 : 4A3G0901 劉彥佐 4A3G0907 韓偉志 畫面預覽 匯入參數 package paint; import java.awt.*; import java.awt.event.*; import javax.swing.*; 主程式 public class paint{ public static void main(string[]

More information

untitled

untitled 1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form

More information

2016 勒索軟體白皮書

2016 勒索軟體白皮書 Botnet Botnet 1 1 2 2 5 5 6 9 10 11 11 11 12 12 12 12 12 12 13 14 2016 1989 AIDS AIDS C 189 2005 2006 TROJ_CRYPZIP.A 2011 TROJ_RANSOM.QOWA 12 2012 REVETON 2013 Cryptolocker Cryptolocker AES RSA Cryptolocker

More information

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6>

<4D6963726F736F667420506F776572506F696E74202D20B5DA3035D5C220C3E6CFF2B6D4CFF3B8DFBCB6B3CCD0F2C9E8BCC6> Java 程 序 设 计 教 学 课 件 河 南 农 业 大 学 信 管 学 院 计 算 机 系 河 南 农 业 大 学 信 管 学 院 计 算 机 系 高 级 语 言 程 序 设 计 课 程 组 第 5 章 面 向 对 象 高 级 程 序 设 计 主 要 内 容 5.1 继 承 5.2 多 态 性 5.3 抽 象 类 和 抽 象 方 法 5.4 接 口 5.5 内 部 类 和 匿 名 类 5.1

More information

[剑指offer] 面试题43:n个骰子的点数(Java),[剑指offer] 面试题42: 翻转单词顺序 VS左旋转字符串(Java),[剑指offer] 面试题41:和为s的两个数字VS和为s的连续序列

[剑指offer] 面试题43:n个骰子的点数(Java),[剑指offer] 面试题42: 翻转单词顺序 VS左旋转字符串(Java),[剑指offer] 面试题41:和为s的两个数字VS和为s的连续序列 [ 剑 指 offer] 面 试 题 43:n 个 骰 子 的 点 数 (Java) 题 目 : 把 n 个 骰 子 扔 在 地 上, 所 有 骰 子 朝 上 一 面 的 点 数 之 和 为 S 输 入 n, 打 印 出 S 的 所 有 可 能 的 值 出 现 的 概 率 分 析 : 一 般 来 说 骰 子 只 有 6 面, 点 数 为 1~6, n 个 骰 故 子 的 最 小 和 为 n, 最 大

More information

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

RxJava

RxJava RxJava By 侦跃 & @hi 头 hi RxJava 扩展的观察者模式 处 观察者模式 Observable 发出事件 Subscriber 订阅事件 bus.post(new AnswerEvent(42)); @Subscribe public void onanswer(answerevent event) {! }! Observable observable = Observable.create(new

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

Microsoft Word - JAVA3.rtf

Microsoft Word - JAVA3.rtf Java2 lesson The aim of this lesson is concept and method. ( 赵 卓 宁 ) 教 学 计 划 学 习 进 度 Java 3 6.1~6.34 内 容 介 绍 教 材 内 容 : 第 六 课 描 绘 的 层 次 和 关 系 主 要 议 程 1. 的 复 用 2. 的 继 承 3. 关 于 多 态 4. 应 用 约 束 ( 封 装 ) 5. 接

More information

建模与图形思考

建模与图形思考 C03_c 基 於 軟 硬 整 合 觀 點 JNI: 从 C 调 用 Java 函 数 ( c) By 高 煥 堂 3 How-to: 基 於 軟 硬 整 合 觀 點 从 C 调 用 Java 函 数 如 果 控 制 点 摆 在 本 地 C 层, 就 会 常 常 1. 从 本 地 C 函 数 去 调 用 Java 函 数 ; 2. 从 本 地 C 函 数 去 存 取 Java 层 对 象 的 属 性

More information

一. Java基础部分......................................................................................................2

一. Java基础部分......................................................................................................2 目 录 1. Java 基 础 部 分... 10 1 一 个 ".java" 源 文 件 中 是 否 可 以 包 括 多 个 类 ( 不 是 内 部 类 )? 有 什 么 限 制?... 10 2 Java 有 没 有 goto?... 10 3 说 说 & 和 && 的 区 别... 10 4 在 JAVA 中 如 何 跳 出 当 前 的 多 重 嵌 套 循 环?... 11 5 switch

More information

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074> 程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 pengxin@fudan.edu.cn 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学

More information

2006 年 12 月 SUN 公 司 发 布 JDK6.0 目 前 主 流 的 JDK 是 Sun 公 司 发 布 的 JDK, 除 了 Sun 之 外, 还 有 很 多 公 司 和 组 织 都 开 发 了 自 己 的 JDK, 例 如 IBM 公 司 开 发 的 JDK,BEA 公 司 的 Jr

2006 年 12 月 SUN 公 司 发 布 JDK6.0 目 前 主 流 的 JDK 是 Sun 公 司 发 布 的 JDK, 除 了 Sun 之 外, 还 有 很 多 公 司 和 组 织 都 开 发 了 自 己 的 JDK, 例 如 IBM 公 司 开 发 的 JDK,BEA 公 司 的 Jr 1 Java 入 门 Java 是 一 门 很 优 秀 的 编 程 语 言, 具 有 面 向 对 象 与 平 台 无 关 安 全 稳 定 和 多 线 程 等 特 点, 是 目 前 软 件 设 计 中 极 为 健 壮 的 编 程 语 言 Java 不 仅 可 以 用 来 开 发 大 型 的 应 用 程 序, 而 且 特 别 适 合 于 Internet 的 应 用 开 发 Java 确 实 具 备 了

More information

Microsoft PowerPoint - 13_Exception.ppt

Microsoft PowerPoint - 13_Exception.ppt 1 第 13 章例外處理 (Exception Handling) 13.1 簡介 13.2 例外處理概觀 13.3 其它錯誤處理技術 13.4 簡單的例外處理範例 - 除 0 錯誤 13.5 重新丟出例外 13.6 函式例外清單 13.7 處理非預期例外 13.8 堆疊返回 13.9 建構子, 解構子, 與例外處理 13.10 例外與繼承 13.11 處理新的錯誤 13.12 auto_ptr 類別與動態記憶體配置

More information

C 語言—陣列及字串

C 語言—陣列及字串 10/16 系程主講人 : 荊輔翔 概論 陣列 陣列是一個具有索引 (index) 性質的連續資料儲存空間集合 陣列中每一個資料儲存空間稱之為陣列元素 (array element); 它們都具有相同的資料名稱 資料型態 及空間大小 ; 但存取它們時則須藉由索引 ( 或稱註標 ) 來區別辨識 索引代表資料在陣列中的相對位址 ( 其計數由 0 開始, 其餘累加類推 ), 且須由中括號 [ ] 涵蓋之

More information

C/C++ Programming

C/C++ Programming !281 第 十講 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com !282 課程 大綱 與作業系統或其他軟體溝通 (API) [P.283] 檔案相關函式表 [P.284] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite)

More information

Slide 1

Slide 1 Java 程式設計入門 講師 : 陳昭源 CSIE, NTU August 3, 2005 Outline Character & String Exercise August 3, 2005 Page 2 Character & String 處理字元資料時,Java 有三個類別可供使用 Character: 處理單一字元 String: 處理內容不改變 (immutable) 的字串 StringBuffer:

More information

javac: 负 责 的 是 编 译 的 部 分, 当 执 行 javac 时, 会 启 动 java 的 编 译 器 程 序 对 指 定 扩 展 名 的.java 文 件 进 行 编 译 生 成 了 jvm 可 以 识 别 的 字 节 码 文 件 也 就 是 class 文 件, 也 就 是 ja

javac: 负 责 的 是 编 译 的 部 分, 当 执 行 javac 时, 会 启 动 java 的 编 译 器 程 序 对 指 定 扩 展 名 的.java 文 件 进 行 编 译 生 成 了 jvm 可 以 识 别 的 字 节 码 文 件 也 就 是 class 文 件, 也 就 是 ja Java 基 础 知 识 总 结 一 :java 概 述 : 1,JDK:Java Development Kit,java 的 开 发 和 运 行 环 境,java 的 开 发 工 具 和 jre 2,JRE:Java Runtime Environment,java 程 序 的 运 行 环 境,java 运 行 的 所 需 的 类 库 +JVM(java 虚 拟 机 ) 3, 配 置 环 境 变

More information

投影片 1

投影片 1 Chap 9 巢狀類別 多形與套件 9-1 巢狀類別 9-2 匿名內層類別 9-3 多形的基礎 9-4 多形的實作 9-5 套件 9-1 巢狀類別 9-1-1 巢狀類別 9-1-2 內層類別的使用 9-1-1 巢狀類別 - 說明 巢狀類別是在類別中擁有其他類別的宣告, 在外面的類別稱為 外層類別 (Enclosing Class); 內層的成員類別稱為 內層類別 (Inner Classes) 巢狀類別強調類別之間的關聯性,

More information

目 录 / CATALOG 一 桌 面 网 站 接 入 1. JAVASCRIPT 网 页 插 件 接 入 2. JS 代 码 操 作 指 引 3. 网 页 链 接 独 立 页 面 接 入 4. 网 页 链 接 接 入 操 作 指 引 5. 自 定 义 桌 面 网 站 接 入 图 标 颜 色 等 0

目 录 / CATALOG 一 桌 面 网 站 接 入 1. JAVASCRIPT 网 页 插 件 接 入 2. JS 代 码 操 作 指 引 3. 网 页 链 接 独 立 页 面 接 入 4. 网 页 链 接 接 入 操 作 指 引 5. 自 定 义 桌 面 网 站 接 入 图 标 颜 色 等 0 爱 客 服 快 速 接 入 指 南 400 005 0025 / aikf@huilan.com 目 录 / CATALOG 一 桌 面 网 站 接 入 1. JAVASCRIPT 网 页 插 件 接 入 2. JS 代 码 操 作 指 引 3. 网 页 链 接 独 立 页 面 接 入 4. 网 页 链 接 接 入 操 作 指 引 5. 自 定 义 桌 面 网 站 接 入 图 标 颜 色 等 01

More information

( )... 5 ( ) ( )

( )... 5 ( ) ( ) 2016 大學校院招收大陸地區學生聯合招生委員會 71005 臺南市永康區南臺街 1 號 E-mail:rusen@stust.edu.tw WEB:http://rusen.stust.edu.tw TEL:+886-6-2435163 FAX:+886-6-2435165 2 0 1 6 0 1 1 9 2016... 2... 3... 5 ( )... 5 ( )... 5 1... 6 2...

More information

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指 导 你 搭 建 Linux 平 台 下 的 JAVA 开 发 环 境, 包 括 JDK 以 及 集

More information

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 Excel - - Excel - -4-5 840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 ( 0 ) 智慧標籤 相關說明提示 -5 -- Excel 4 5 6 7 8 + - * / % ^ = < >= & 9 0 (:) (,) ( ) Chapter - :,

More information