物件導向程式設計課程講義(98 ges hi版)

3,780 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,780
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

物件導向程式設計課程講義(98 ges hi版)

  1. 1. 數學系資訊組 物件導向程式設計 課程講義 教材編撰:數學系講師冷輝世
  2. 2. 九十八學年度第二版
  3. 3. 「物件導向程式設計」課程講義 九十八學年度二版 目錄 第1頁
  4. 4. 「物件導向程式設計」課程講義 九十八學年度二版 軟體需求 1. Java SE6 JDK, Java Doc http://java.sun.com 2. JCreator http://www.jcreator.com Java SE6 JDK 與 Java Doc 請選擇最左邊的 JCreator 有三種版本, Pro 版有自動補完功能 (Auto Paded) ,但是屬 Shareware , LE 版與 Classics 版則是免費使用。 第2頁
  5. 5. 「物件導向程式設計」課程講義 九十八學年度二版 設定系統環境變數 1. 新增 JAVA_HOME= C:Program FilesJavajdk1.6.0_18 2. 修改 PATH=%PATH%; C:Program FilesJavajdk1.6.0_18bin 我的電腦(按滑鼠右鍵)→進階→環境變數→系統變數 一定要先設定完系統環境變數以後再開啟 JCreator ,否則 JCreator 會抓不到 Java 的相關設定,造成無法編譯與執行的狀況。 第3頁
  6. 6. 「物件導向程式設計」課程講義 九十八學年度二版 Java 教學文件 1. Java Tutorial http://java.sun.com/docs/books/tutorial/ 2. The Swing Tutorial http://java.sun.com/docs/books/tutorial/uiswing/ 3. Example Depot http://www.exampledepot.com/ 4. Java Tutorial http://www.java2s.com/Tutorial/Java/CatalogJava.htm 本課程預計學生已修習過程式設計,已有基本的程式設計概念,例如程式基本 架構、變數、流程控制等。 Java Doc 一定要裝!雖然檔案大了一點,可是可以節省不少查書的時間。建議安 裝在 C:Program FilesJavajdk1.6.0_12Docs 目錄下。 第4頁
  7. 7. 「物件導向程式設計」課程講義 九十八學年度二版 Applet, Application 與 Swing Application Applet 、 Application 與 Swing Application 的差異: 1. Applet 僅能在網頁中執行,需要 HTML 加以呼叫,所以有兩個檔案。 2. Application 以「命令提示字元」模式執行,只有簡單的文字輸出入。 3. Swing Application 與視窗程式相同(事件驅動)。 [HTML]HelloApplet.htm [Applet]HelloApplet.java [Application]Hello.java 第5頁
  8. 8. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Applicaton]HelloSwing.java 第6頁
  9. 9. 「物件導向程式設計」課程講義 九十八學年度二版 Java 程式的編譯與執行 編譯與執行過程除了使用 JCreator 之外,尚需熟練「命令提示字元」模式。 圖片來源:http://csjava.occ.cccd.edu/java-setup/D.htm 「命令提示字元」模式 「命令提示字元」模式下的操作 1. javac.exe http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javac.html 2. java.exe http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/java.html 第7頁
  10. 10. 「物件導向程式設計」課程講義 九十八學年度二版 基本程式架構說明 說明類件(Class)、物件(Object)、建構元(Constructor)等觀念。 圖片來源:http://www.cs.princeton.edu/introcs/32class/ 第8頁
  11. 11. 「物件導向程式設計」課程講義 九十八學年度二版 基本資料型態與運算子 基本資料型態 資料來源:http://www.artima.com/insidejvm/ed2/jvmP.html 基本型態運算子與 C/C++ 幾乎都相同(除了字串以外)。 第9頁
  12. 12. 「物件導向程式設計」課程講義 九十八學年度二版 資料來源:http://www.falkhausen.de/de/table/operator.gif 第 10 頁
  13. 13. 「物件導向程式設計」課程講義 九十八學年度二版 Application 模式下的輸出與輸入模式 Application 模式下的輸出使用 System.out.println() 。 [Application]Hello.java Application 模式下的輸入模式有三種: 1. 引數列輸入 2. 鍵盤輸入,使用 BufferedReader 類別物件 3. 鍵盤輸入,使用 Scanner 類別物件 [Application]KeyinDemo1.java [Application]KeyinDemo2.java 第 11 頁
  14. 14. 「物件導向程式設計」課程講義 九十八學年度二版 [Application]KeyinDemo3.java 第 12 頁
  15. 15. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下的輸出與輸入 JOptionPane.showMessageDialog() 對話盒輸出,JTextField 元件輸入。 [Swing Application]DialogDemo.java [Swing Application]SwingIODemo.java 第 13 頁
  16. 16. 「物件導向程式設計」課程講義 九十八學年度二版 第 14 頁
  17. 17. 「物件導向程式設計」課程講義 九十八學年度二版 陣列 Java 陣列的宣告與 C/C++ 不太一樣,注意“[”與“]”的位置;另外,以物件的 方式宣告,包括 Declaration 與 Creation 兩階段,可以分開也可以合併。 [Application]ArrayDemo.java [Application]ObjArrayDemo1.java [Application]ObjArrayDemo2.java 第 15 頁
  18. 18. 「物件導向程式設計」課程講義 九十八學年度二版 第 16 頁
  19. 19. 「物件導向程式設計」課程講義 九十八學年度二版 數字類別與字串類別 使用數字類別的理由: 1. 可以作為物件的參數。 2. 可以使用數字類別中內建常數。 3. 可以與字串類別做轉換或直接轉換進位制。 分別以 Integer 類別為例,說明數字類別與字串類別。 以 Math 類別為例,說明靜態類別。 第 17 頁
  20. 20. 「物件導向程式設計」課程講義 九十八學年度二版 字串類別的宣告、字串與數值的轉換 字串分為 String, StringBuffer, StringBuilder 三種類別。其中 String 類別為 immutable , StringBuffer 為 mutable, thread-safe , StringBuilder 則為 mutable 用 來取代在 single-thread 情況下的 StringBuffer 。注意這三種類別字串處理的函數 名稱不同。 說明 String, StringBuffered 類別的差異,並舉例。 第 18 頁
  21. 21. 「物件導向程式設計」課程講義 九十八學年度二版 如何使用亂數 亂數有兩種產生的方式: 1. 呼叫 Math.random() 靜態類別函數 2. 宣告 java.util.Random 類別物件 [Application]RandomDemo1.java [Application]RandomDemo2.java 第 19 頁
  22. 22. 「物件導向程式設計」課程講義 九十八學年度二版 MVC 架構 一般的 MVC 架構 圖片來源:http://java.sun.com/developer/technicalArticles/javase/mvc/ Java MVC 第 20 頁
  23. 23. 「物件導向程式設計」課程講義 九十八學年度二版 圖片來源:http://pwosboy.javaeye.com/blog/118768 第 21 頁
  24. 24. 「物件導向程式設計」課程講義 九十八學年度二版 流程控制與事件驅動 與 C/C++ 相同,有 if, if …else, for , while, do…while, switch…case 等。 Swing 模式下的事件驅動是所謂的 Event-Driven ,必須熟悉「元件-事件- 介面」的處理程序。 JButton 元件為例,按下按鍵產生 ActionEvent ,必須利用 以 ActionListener 介面來處理,必須實作 ActionListener 介面中的所有 method ( ActionListener 介面中只有一個 method 即 actionPerformed() )。 Swing Events http://java.sun.com/developer/onlineTraining/GUI/Swing2/shortcourse.html 第 22 頁
  25. 25. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下 JButton 元件的介紹 [Swing Application]Swing3.java 第 23 頁
  26. 26. 「物件導向程式設計」課程講義 九十八學年度二版 第 24 頁
  27. 27. 「物件導向程式設計」課程講義 九十八學年度二版 有圖片的 JButton 在 Java Web Start 的宣告方式 原本的 JButton 宣告 JButton b1=new JButton("剪刀",new ImageIcon("./scissor.gif")); Java Web Start 下的宣告方式 ClassLoader cl=this.getClass().getClassLoader(); Icon scissors1=new ImageIcon(cl.getResource("images/scissors1.gif")); JButton b1=new JButton("剪刀",scissors1); 第 25 頁
  28. 28. 「物件導向程式設計」課程講義 九十八學年度二版 Abstract Class 的介紹 Java 定義有 Abstract Class ,其目的在於利用此 Abstract Class 衍生子類別, 所以不能利用 Abstract Class 建立物件,只能透過其衍生子類別建立物件。 Abstract Class 與一般 Class 宣告類似,有資料成員、成員函數,但多了定義 abstract method , abstract method 是空的,沒有定義函數的內容,而且只能宣告 為 public 或 protected 。 [Application]ExAbstract.java 第 26 頁
  29. 29. 「物件導向程式設計」課程講義 九十八學年度二版 第 27 頁
  30. 30. 「物件導向程式設計」課程講義 九十八學年度二版 Interface 的介紹 Interface 是 Java 提供的另一項重要功能,與 Abstract Class 非常類似,但有 兩點不同: 1. 所有的資料都要初始化。 2. 所有的 method 都必須宣告為 abstract ,也就是說不能有一般的 method 。 [Application]ExInterface.java 第 28 頁
  31. 31. 「物件導向程式設計」課程講義 九十八學年度二版 事件處理的多種寫法 每種 EventListener 都是一種 Interface ,裡面只有定義這個 EventListener 所 提供的方法,所以當要處理事件(Event)時,必須實作出 Interface 所定義的方法, 寫法有三種:。 1. 利用 implements 關鍵字將所有抽象方法實作出來。 2. 利用 Adapter 類別。 3. 利用 Inner Class 的匿名類別方法(可以解決多重繼承的問題)。 [Swing Application]ExEvent1.java 第 29 頁
  32. 32. 「物件導向程式設計」課程講義 九十八學年度二版 第 30 頁
  33. 33. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Application]ExEvent2.java [Swing Application]ExEvent3.java 第 31 頁
  34. 34. 「物件導向程式設計」課程講義 九十八學年度二版 第 32 頁
  35. 35. 「物件導向程式設計」課程講義 九十八學年度二版 集中事件處理 另外,當有許多不同事件要處理時,可以考慮集中事件處理。 [Swing Application]ExEvent4.java 第 33 頁
  36. 36. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下 JLabel 元件介紹 JLabel 用來顯示一段文字或圖形或文字加上圖形。以下舉例說明不同形式的 JLabel 。 [Swing Application]JLabelExample.java 第 34 頁
  37. 37. 「物件導向程式設計」課程講義 九十八學年度二版 第 35 頁
  38. 38. 「物件導向程式設計」課程講義 九十八學年度二版 利用 JLabel 顯示文字作為提示文字 [Swing Application]ExJLabel.java 第 36 頁
  39. 39. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下 JTextField 和 JPasswordField 元件的介紹 JTextField 輸入單行文字, JPasswordField 輸入具有遮罩的單行文字。 [Swing Application]FormExample.java 第 37 頁
  40. 40. 「物件導向程式設計」課程講義 九十八學年度二版 第 38 頁
  41. 41. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下的 JCheckBox 和 JRadioButton 元件的介紹 JCheckBox 建立核取方塊, JRadioButton 建立收音機按鈕,若要滿足單選 則必須配合 ButtonGroup 使用。 [Swing Application]ExJRadioButton.java 第 39 頁
  42. 42. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Application]ExJCheckBox.java 第 40 頁
  43. 43. 「物件導向程式設計」課程講義 九十八學年度二版 第 41 頁
  44. 44. 「物件導向程式設計」課程講義 九十八學年度二版 檔案處理 Java 檔案的處理架構如下,針對文字檔的處理有兩種方式: 1. 利用 FileReader 與 FileWriter 讀取與寫入文字檔 2. 利用 BufferedReader 與 BufferedWriter 讀取與寫入文字檔 [Swing Application]SourceReader.java 第 42 頁
  45. 45. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下 JTextArea 和 JFileChooser 元件的介紹 配 合 Java 檔 案 處 理 , 利用 FileChooser 開 啟檔 案 並 將讀 取 的 內容 放 到 JTextArea 元件中,可供修改後再儲存。 ※作業:完成儲存的功能。 [Swing Application]FileRW.java 第 43 頁
  46. 46. 「物件導向程式設計」課程講義 九十八學年度二版 第 44 頁
  47. 47. 「物件導向程式設計」課程講義 九十八學年度二版 第 45 頁
  48. 48. 「物件導向程式設計」課程講義 九十八學年度二版 整合範例-猜數字遊戲 利用猜數字遊戲將前面介紹的內容整合,觀察下列原始碼的 MVC 架構。 作業:加入詢問是否再玩一次的功能。 [Swing Application]GuessAB.java 第 46 頁
  49. 49. 「物件導向程式設計」課程講義 九十八學年度二版 第 47 頁
  50. 50. 「物件導向程式設計」課程講義 九十八學年度二版 第 48 頁
  51. 51. 「物件導向程式設計」課程講義 九十八學年度二版 Java 與 MySQL 的連結 Java 與 MySQL 連結的步驟如下: 1. 下載 mysql-java-connector-5.1.12.zip ,解壓縮將 mysql-java- connector-5.1.12.jar 放至 JRE 下的 libext 目錄下。 http://dev.mysql.com/downloads/connector/j/ 2. 安裝 AppServ 包括 MySQL 與 phpMyAdmin 。 http://www.appservnetwork.com 3. 修改 C:AppServwwwphpMyAdminconfig.inc.php 第 31 行為 $cfg['PmaAbsoluteUri'] = 'http://127.0.0.1/phpMyAdmin/'; 4. 資料庫(Database)、資料表(Table)、欄位(Field)、記錄(Record)之間的關係。 第 49 頁
  52. 52. 「物件導向程式設計」課程講義 九十八學年度二版 MySQL 資料庫的建立 使用 phpMyAdmin 建立 math 資料庫,並建立 student 資料表,其中包括 id, name, score 三個欄位。 資料庫 math 第 50 頁
  53. 53. 「物件導向程式設計」課程講義 九十八學年度二版 使用 phpMyAdmin 設定資料庫的權限的問題 建立一個帳號 www ,密碼為 123 的使用者帳戶,對 math 資料庫擁有 SELECT 權限。 第 51 頁
  54. 54. 「物件導向程式設計」課程講義 九十八學年度二版 SQL(Structured Query Language)介紹 SQL 命令分為 DDL 與 DML 兩類: 1. DDL(Data Definition Language) 包 括 CREATE TABLE, CREATE VIEW, DROP TABLE, DROP VIEW, GRANT, REVOKE 。 2. DML DML(Data Manipulation Language) 包 括 SELECT, INSERT, UPDATE, DELETE 。 3. SQL Quick Reference From W3Schools http://www.w3schools.com/sql/sql_quickref.asp?output=print 第 52 頁
  55. 55. 「物件導向程式設計」課程講義 九十八學年度二版 JDBC 範例 建立一個基本的 JDBC 範例,目的只是確定之前的安裝連結成功。 [Application]JDBCEx1.java 第 53 頁
  56. 56. 「物件導向程式設計」課程講義 九十八學年度二版 Package 與 Jar Package 是指將 class 封裝,則其它程式可使用 import 引入。 Jar 則是將 class 檔壓縮。 Package 時要注意路徑的設定。 Jar 的命令操作可參考下列文件: 1. Java Archive (JAR) Files http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html 2. Lesson: Packaging Programs in JAR Files http://java.sun.com/docs/books/tutorial/deployment/jar/ 第 54 頁
  57. 57. 「物件導向程式設計」課程講義 九十八學年度二版 第 55 頁
  58. 58. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式中的 Model Swing 元件中的 Model 可分為三類 1. 儲存元件內將被用來操作的資料,常用來顯示不同的資料顯示方式。例如: ListModel, ComboBoxModel, TableModel, Document 。 2. 儲存元件操作模式的資料。例如: ListSelectionModel, TableColumnModel 。 3. 儲存元件本身性質的資料。例如: BoundedRangeModel 。 第 56 頁
  59. 59. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式中的 JList 元件介紹 JList 元件常用建立選取清單。注意 JList 與 JComboBox 不同 JList 是清單, JComboBox 是下拉式選單。 AbstractListModel 要實作 getElementAt(), getSize() , DefaultListModel 則是所有方法都有預設值。ListCellRenderer 主要用於建立有 Icon 的 JList ,通常是建立某類別繼承 JLabel 並實作 ListCellRenderer 介面。 [Swing Application]JListEx1.java 第 57 頁
  60. 60. 「物件導向程式設計」課程講義 九十八學年度二版 第 58 頁
  61. 61. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下的 JComboBox 元件 JComboBox 用來建立下拉式選單。 DefaultComboBoxModel 所有方法都有 預 設 值 。 由 於 ComBoxModel 是 繼 承 自 ListModel , 所 以 若 要 實 作 ComboBoxModel ,除了要實作 ComboBoxModel 的兩個方法 getSelectedItem(), setSelectedItem() 外,還要實做 ListModel 所定義的四個方 法 getElementAt(), getSize(), addListDataListener(), removeListDataListener() ,共六個方法。所以如果 繼承 AbstractListModel 再實作 ComboBoxModel 則只要實作四個方法。 [Swing Application]JComboEx1.java 第 59 頁
  62. 62. 「物件導向程式設計」課程講義 九十八學年度二版 第 60 頁
  63. 63. 「物件導向程式設計」課程講義 九十八學年度二版 Google Chart Tools Google Chart 是一組 Google 提供的 API ,我們可以很容易的利用它產生一 般的統計圖表。 參考文件: 1. Google Chart Tools http://code.google.com/apis/charttools/ 第 61 頁
  64. 64. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下的 JTabbedPane 元件 TabbedPane 類似放置文件的檔案夾,每一份文件都有標籤不同的標籤可顯 示不同的頁面。 [Swing Application]JTabbedPaneEx1.java 第 62 頁
  65. 65. 「物件導向程式設計」課程講義 九十八學年度二版 第 63 頁
  66. 66. 「物件導向程式設計」課程講義 九十八學年度二版 Swing 模式下 JTable 元件的介紹 JTable 用來建立表格文字,建立方式可以使用 Array 或是 Vector ,使用 Vector 比較有彈性。區別 AbstractTableModel 與 DefaultTableModel 的不同。 [Swing Application]JTableEx1.java 第 64 頁
  67. 67. 「物件導向程式設計」課程講義 九十八學年度二版 第 65 頁
  68. 68. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Application]JTableEx2.java 第 66 頁
  69. 69. 「物件導向程式設計」課程講義 九十八學年度二版 第 67 頁
  70. 70. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Application]JTableEx3.java 第 68 頁
  71. 71. 「物件導向程式設計」課程講義 九十八學年度二版 JTable 範例 以下是有關 JTable 的精彩範例: 1. JTable Example 1 http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples1.html 2. JTable Example 2 http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples2.html 第 69 頁
  72. 72. 「物件導向程式設計」課程講義 九十八學年度二版 第 70 頁
  73. 73. 「物件導向程式設計」課程講義 九十八學年度二版 第 71 頁
  74. 74. 「物件導向程式設計」課程講義 九十八學年度二版 Java Web Start 的使用 執行以下九個步驟: 1. 設定 Web Server ,開啟 C:AppServApache2.2confmime.types,加入: # MIME type Extensions application/x-java-jnlp-file jnlp Apach Restart 。 2. 編譯 Test1.java 檔,產生 Test.class 檔。 Test1.java→(Compile)→Test1.class(or Test1$.class) [Swing Application] Test1.java 3. 建立 manifest.txt (第一行的 Test1 前面空一格,第二行空行一定要有) manifest.txt 第 72 頁
  75. 75. 「物件導向程式設計」課程講義 九十八學年度二版 Main-Class: Test1 4. 建立 Test.jar (開啟 cmd 視窗,建立 jar 檔) jar cvfm Test1.jar manifest.txt *.class 5. 建立簽証檔 myKeystore keytool -genkey -keystore myKeystore -alias myself 6. 對 Test.jar 檔加上簽証 jarsigner -keystore myKeystore Test1.jar myself 7. 建立 Test1.jnlp Test1.jnlp 8. 建立 Test1.htm 連結 Test1.jnlp Test1.htm 第 73 頁
  76. 76. 「物件導向程式設計」課程講義 九十八學年度二版 9. 利用瀏覽器開啟 URL , http://127.0.0.1/jws/Test1.htm 。 第 74 頁
  77. 77. 「物件導向程式設計」課程講義 九十八學年度二版 JDBC 範例 JDBC 範例包括建立資料庫與 JWSTest.java 兩部份。請先將 mysql-connector- java-5.1.12-bin.jar 複製至 C:AppServwwwjws 目錄下。 1. 建立 ncue 資料庫,內含 math 資料表,內含 id, name, score 三欄位,並建立 有 select 上述資料庫權限的帳號與密碼 www, 123 。 2. 確定 JWSTest.java 程式編譯無誤。 第 75 頁
  78. 78. 「物件導向程式設計」課程講義 九十八學年度二版 [Swing Application]JWSTest.java 第 76 頁
  79. 79. 「物件導向程式設計」課程講義 九十八學年度二版 3. 建立 JWSTest.jar jar cvfm JWSTest.jar manifest.txt JWSTest*.class 4. 對 JWSTest.jar 檔加上簽証(如果已有簽証,這裡就不必再建立簽証了!) jarsigner -keystore myKeystore JWSTest.jar myself 5. 對 mysql-connector-java-5.1.6-bin.jar 作 jarsinger 簽証。 jarsigner -keystore myKeystore mysql-connector-java-5.1.6-bin.jar myself 6. 建立 JWSTest.jnlp 第 77 頁
  80. 80. 「物件導向程式設計」課程講義 九十八學年度二版 第 78 頁
  81. 81. 「物件導向程式設計」課程講義 九十八學年度二版 JWSTest.jnlp 7. 建立 JWSTest.htm JWSTest.htm 8. 利用瀏覽器開啟 URL , http://127.0.0.1/jws/JWTest.htm 。 注意!雖然 jar 檔在檔案總管中直接按兩下即可開啟,但是這只代表在本地 端的執行,與 Java Web Start 遠端佈署的意義是不同的!所以一定要以 URL 的 方式開啟才算成功! ~基礎課程結束~ 第 79 頁
  82. 82. 「物件導向程式設計」課程講義 九十八學年度二版 自我評量測驗 針對以下問題,請每位同學自行查詢筆記作答: 1. Abstract Class 與一般的 Class 有什麼不同? 2. 說明 Interface 的作用? 3. Java 程式的基本架構包括那些? 4. 環境變數要設定那些? 5. JCreator 開啟 Java File 與 Java Project 有何不同, Workspace 又是什麼? 6. Java Swing 程式的基本架構包括那些? 7. Java 如何與 MySQL 資料庫連結? 8. Java 程式中執行 SQL 指令的函數有什麼要注意的? 9. 各舉一例說明 SQL 語法的 SELECT 、 INSERT 、 DELETE 、 UPDATE 。 10. 如何在 Java 中取亂數? 11. try…catch 是用在什麼場合? 12. throw 與 try…catch 有什麼不同? 13. 如何實作一個 Interface? 14. 為什麼要利用類別去繼承介面?有什麼作用? 15. String, StringBuffer 與 StringBuilder 這三個類別有什麼不同? 16. Vector 與 Array 有什麼不同? 17. 與例說明 Java 的 MVC 架構(UI-Delegate)。 第 80 頁
  83. 83. 「物件導向程式設計」課程講義 九十八學年度二版 18. 如果同時有兩個物件會觸發同一種事件,要如何分辨是那一個物件觸發的? 19. 管理 MySQL 資料庫時,會對不同的資料庫設定不同的帳號與管理權限, 為什麼? 20. FlowLayout, GridLayout, BorderLayout 有什麼不同? 21. Java Web Start 的步驟有那些? 第 81 頁
  84. 84. 「物件導向程式設計」課程講義 九十八學年度二版 CGI 原理 第 82 頁
  85. 85. 「物件導向程式設計」課程講義 九十八學年度二版 CGI 中的 GET 與 POST 第 83 頁
  86. 86. 「物件導向程式設計」課程講義 九十八學年度二版 URL 編碼與解碼 (RFC2396) CGI 在傳送資料時是以 URL 格式編碼,會將空白轉換為“ +”, Unsafe 字元 則轉換為“%”後面接著以十六進位 ASCII 來表示。Safe 字元指的七位元的 ASCII 文數字與九個特號符號 (-_.!~*'()) , Unsafe 字元指由其它七位元 ASCII 。 圖片來源:http://www.albionresearch.com/misc/urlencode.php 第 84 頁
  87. 87. 「物件導向程式設計」課程講義 九十八學年度二版 觀察 CGI 過程 利用 Http Analyzer 或 HTTPDebuggerPro 觀察 CGI 的 GET 與 POST 。 [Application]FindBook1.java(GET) 第 85 頁
  88. 88. 「物件導向程式設計」課程講義 九十八學年度二版 此程式的結果以 XML 格式回傳。那麼我們要如何存取 XML 格式的資料? 1. 利用 javax.xml Package。 2. 利用 org.w3c.dom Package。 3. 利用 org.xml.sax Package。 參考網址 Processing XML with Java , http://www.cafeconleche.org/books/xmljava/chapters/ [Swing Application]FindBook2.java(POST ) 第 86 頁
  89. 89. 「物件導向程式設計」課程講義 九十八學年度二版 此程式的結果是 HTML 格式,如何去 Parse 內容? 1. 利用 java.lang.String 類別。 2. 利用 java.util.regex Package。 3. 利用 javax.swing.text.html Package。 第 87 頁
  90. 90. 「物件導向程式設計」課程講義 九十八學年度二版 NanoXML 函數庫介紹 NanoXML 是一個免費的小型 Java XML Parser ,針對 XML 的處理提供了 簡單、快速的存取方法。將下列檔案放在 C:Program FilesJavajre1.6.0_18libext 目錄下,如果使用 JCreator ,必須將 nanoxml-2.3.3.jar 加入 JDK Profile 。 下載網址: http://devkix.com/nanoxml-2.2.3.jar, http://devkix.com/nanoxml-javadoc.tar.gz [Swing Application]NewFindBook1.java 第 88 頁
  91. 91. 「物件導向程式設計」課程講義 九十八學年度二版 Regular Expression (Package java.util.regex) 介紹 在 java.util.regex 這 個 Package 中 主 要 有 兩 個 Class , 包 括 Matcher 與 Pattern ,其中 Pattern 使用的就是 Regular Expresion , Regualr Expression 是字 串的一種特殊處理,是由 Perl 語言最先發明的。 參考文件: 1. http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Matcher.html 2. http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html 參考範例: 1. http://www.java2s.com/Code/Java/Regular-Expressions/Matcher.htm 2. http://www.java2s.com/Code/Java/Regular-Expressions/Pattern.htm 第 89 頁
  92. 92. 「物件導向程式設計」課程講義 九十八學年度二版 以學校圖書館館藏查詢為例 1. 檢視原始碼,找出關鍵字串 2. 找出 Regular Expression 的規則 [Application]RegEx1.java 第 90 頁
  93. 93. 「物件導向程式設計」課程講義 九十八學年度二版 即可分解出 第 91 頁
  94. 94. 「物件導向程式設計」課程講義 九十八學年度二版 以 ISBN 全國新書資訊網為例 資料來源:http://lib.ncl.edu.tw/isbn/4page-3.htm 1. 檢視原始碼,找出關鍵字串 第 92 頁
  95. 95. 「物件導向程式設計」課程講義 九十八學年度二版 2. 利用 HTML Parser 擷取所需的部份,這裡我們使用 Jericho HTML Parser 幫 助我們處理 HTML 文件 。下載 jericho-html-2.6.zip 並解壓縮至 D: ,將 au 次目錄複製至 D: 。 下載網址: http://jericho.htmlparser.net/docs/index.html D:NewFindBook2.java 第 93 頁
  96. 96. 「物件導向程式設計」課程講義 九十八學年度二版 執行結果: ~進階課程結束~ 第 94 頁

×