1 / 349

Java 系列概論 Java System Concepts

Java 系列概論 Java System Concepts. 基礎入門程式 Basic Programming. 自 1990 年昇陽開始研發 Java 以來,至今 Java 儼然已成為最具網路潛力的程式語言。目前大多數之網路線上遊戲、網路銀行都是以 Java 撰寫而成。 筆者感慨到,我們不知道自己以後會有多大的成就,也許是大企業家、大科學家、或是政治家,但有一點可以確定的,只要從事電腦工作,我們就一定會應用到 Java ,統計目前市場上網路應用之產品, 70% 以上是由 Java 撰寫,聽起來似有些誇張,但事實就是如此。

psyche
Download Presentation

Java 系列概論 Java System Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java系列概論Java System Concepts 基礎入門程式 Basic Programming

  2. 自1990年昇陽開始研發Java以來,至今Java儼然已成為最具網路潛力的程式語言。目前大多數之網路線上遊戲、網路銀行都是以Java撰寫而成。自1990年昇陽開始研發Java以來,至今Java儼然已成為最具網路潛力的程式語言。目前大多數之網路線上遊戲、網路銀行都是以Java撰寫而成。 • 筆者感慨到,我們不知道自己以後會有多大的成就,也許是大企業家、大科學家、或是政治家,但有一點可以確定的,只要從事電腦工作,我們就一定會應用到Java,統計目前市場上網路應用之產品,70%以上是由Java撰寫,聽起來似有些誇張,但事實就是如此。 • 最近美國市場最熱門的I-phone被批評有瑕疵,原因是Java不是MacOS系統之強項,由此也可看出,Java在網路系列應用之重要性。

  3. 本書特色 (1) 輕鬆入門:本書以初學入門觀點切入,配合範例輕鬆解說、輕鬆學習。 (2) 熟練實作:學習重點搭配範例實作,再以SCJP認證模擬試題重複演練,完全剖析Java。 (3) 問題導向:幫助讀者提出問題,解決問題,編輯問題640則(其中223則範例、146則習題、271則認證模擬試題)。 (4) 原文接軌:編輯中英文索引537個,涵蓋所有Java之中英文專有名詞,足夠讓讀者儲備閱讀原文書籍的能力。

  4. 第一章 導讀(Introduction)

  5. 1-1 簡介 • Java是由C++ 淵源發展而成,1990年昇陽(Sun Microsystems) 為發展資訊應用(Information Appliance) 成立 “綠色(Green)” 小組,主要研發消費性家電之控制語言,小組成員James Gosling因研究室窗外的橡樹將軟體最初取名為“Oak”,因Oak已被其他公司採用為商標,改以悠閒且不離手的咖啡感覺將軟體定名為“Java”。 • 1995年,昇陽正式公開 “Java Applet” 上市,主要用於網頁與使用者間互動的小程式,爾後再經過努力開發,至今Java儼然已成為最具網路潛力的程式語言。目前大多數之網路線上遊戲、網路銀行都是以Java撰寫而成。

  6. 1-2 Java系統架構 Java的系統架構可類分為3組區塊: (1) 使用者程式區塊(User’s Program Component), (2) 應用程式介面區塊(API Application Programming Interface Component), (3) 虛擬機器區塊(Virtual Machine Component)。

  7. 圖1-2-2

  8. 圖1-2-3

  9. 1-3 Java執行環境(Java Development Environment)

  10. 1-3 Java執行環境(Java Development Environment)

  11. 1-4 Java特性 1、精緻簡單(Simple):不需大容量儲存記憶體、或龐大套裝應用軟體,Java類別程式(xxx.class) 可直接搭配系統內建方法程序(Methods) 執行有關功能。 2、物件導向(Object Oriented):物件關係是最接近我們人類的邏輯思維,以物件為問題標的,將容易模擬我們解決問題的方法。 3、跨平台(Cross Platforms):如圖1-2-3,Java可依附各種作業系統平台執行,不受執行環境之限制。 4、編譯(Compiler)/直譯(Interpreter):如圖1-3-1,Java原始程式(xxx.java) 經過編譯器產生機器碼(xxx.class),再搭配Java API程式以直譯方式執行。因有編譯過程,故一次執行,到處使用;因是直譯執行,故迅速便捷。 5、安全(Secure):提供周嚴保護措施,且無指標(Pointer) 應用,充分保護記憶體資料之安全。 6、網路功能(Network Functions):不必架設網站,Java程式碼本身就有網路功能,直接執行網路資料傳輸。

  12. 1-5 Java版本 1 企業版J2EE (Java2 Enterprise Edition) 提供企 業伺服端應用; 2 標準版J2SE (Java2 Standard Edition) 提供一般程式開發應用; 3 微電腦版J2ME (Java2 Micro Edition) 提供微電腦應用,如手機、PDA、資訊家電等之開發。

  13. 1-6 Java認證 1 程式設計師認證SCJP(Sun Certified Programmer for Java2 Platform):認證對象為Java程式設計師(Programmer)。 2 研發工程師認證SCJD(Sun Certified Developer for Java2 Platform):認證對象為Java研發工程師(Developer),必須先取得SCJP認證資格者,才可參加本項認證測驗。 3 網路研發工程師認證SCWD(Sun Certified Web Component Developer for Java2 Enterprise Edition J2EE Platform):認證對象為Java Web網路研發工程師(Web Developer),必須先取得SCJP認證資格者,才可參加本項認證測驗。 4 企業結構工程師認證SCAJ(Sun Certified Enterprise Architect for Java2 Technology):為Java之最高級認證,認證對象為Java結構工程師,不須先取得其他認證資格,有PartⅠ、PartⅡ、PartⅢ 三項測驗,必須三項全部通過才可取得證照。

  14. 第三章 Java程式基礎架構與元素

  15. 3-1 簡介 • 撰寫Java程式,也與撰寫其他語言程式一樣,有其自己的架構元素與格式,本章將以初學入門的觀點,先認識一個簡易Java程式的組成架構與元素。 • 對初學者來言,Java程式之基礎架構有程式名稱、執行區塊、執行起始點、敘述、與符號;Java程式之基礎組成元素有 “類別程序(Class Procedures)”,亦即 “物件(Objects)”。

  16. 3-2 Java基礎架構 • 1、程式名稱(Names) • 2、執行區塊(Blocks) • 3、執行起始點(Execution Start) • 4、敘述(Statements) • 5、符號(Signs)。

  17. 3-3 Java基礎元素 • 在Java環境中,一個類別程序(Class Procedure) 就是一個物件。 • Java檔案包含多個類別程序,這些類別程序組成的物件,亦就是Java檔案的基礎元素,也是我們學習Java的起始點。

  18. 類別程序 • 1 class MyfirstJava{ • 2 public static void main(String[ ] args){ • 3 System.out.println("My first Java program"); • 4 } • 5 }

  19. 3-4 關鍵字(Key words) • Java系統有一些關鍵字(Key words),讀者在學習之初應先作認識。這些字有特殊之意義,於編輯程式時除了用在其允許的位置,不得用於其他地方。同時關鍵字也是SCJP的常考題。常用關鍵字之數量並不多,各字之有關意義與用法,將於爾後詳細介紹。

  20. 第四章 變數宣告(Variables)

  21. 4-1 簡介 • 於Java程式中,所有被使用的記憶體(Memory) 都需作資料型態(Data Types) 之宣告(Declare),以限制該記憶體儲存資料的型態。 • 宣告如int a 時,設定記憶體名稱為a,用於儲存整數(integer);宣告如char b 時,設定記憶體名稱為b,用於儲存字元(character)。

  22. 範例7:變數與物件之用法。 • 01 class Mynumber { • 02 int i; • 03 } • 04 class Ex04_1_1 { • 05 public static void main(String[] args) { • 06 int j; • 07 Mynumber a; • 08 j = 3; • 09 a = 5; • 10 System.out.println("j = "+j); • 11 System.out.println("a = "+a); • 12 } • 13 }

  23. 範例8:內建資料型態、與建構資料型態之用法。範例8:內建資料型態、與建構資料型態之用法。 • 01 class Mynumber { • 02 int i; • 03 } • 04 class Ex04_1_2 { • 05 public static void main(String[] args) { • 06 int j; • 07 Mynumber a; • 08 j=3; • 09 a = new Mynumber(); • 10 a.i = 5; • 11 System.out.println("j = "+j); • 12 System.out.println("a.i = "+a.i); • 13 } • 14 }

  24. 4-2 基本資料型別(Primitive Types)

  25. 範例9:字元(char) 變數宣告。 • 01 class Ex04_2_1 { • 02 public static void main (String[] argv) { • 03 char ch; • 04 ch = 'A'; • 05 System.out.println(“英文字母= ”+ch); • 06 ch = '\u0041'; • 07 System.out.println(“Unicode碼= ”+ch); • 08 ch = 65; • 09 System.out.println(“ASCII十進位碼= ”+ch); • 10 ch = '中'; • 11 System.out.println(“中文字元= ”+ch); • 12 ch = '\u4E2D'; • 13 System.out.println(“中文Unicode碼= ”+ch); • 14 ch = 20013; • 15 System.out.println(“中文十進位碼= ”+ch); • 16 ch = '\0'; • 17 System.out.println("特殊字元之空字元= "+ch); • 18 } • 19 }

  26. 範例10:位元組整數(byte) 變數宣告。 • 01 class Ex04_2_2 { • 02 public static void main (String[] argv) { • 03 byte bt; • 04 bt = 65; • 05 System.out.println("數值= "+bt); • 06 bt = 'A'; • 07 System.out.println("字母A之ASCII十進位碼= "+bt); • 08 bt = '\0'; • 09 System.out.println("特殊字元之空字元碼= "+bt); • 10 } • 11 }

  27. 範例11:短整數(short) 變數宣告 • 01 class Ex04_2_3 { • 02 public static void main (String[] argv) { • 03 short st; • 04 st = 65; • 05 System.out.println("一般數值= "+st); • 06 st = 'A'; • 07 System.out.println("字母A之ASCII十進位碼= "+st); • 08 st = '中'; • 09 System.out.println("中文字元十進位碼= "+st); • 10 st = '\0'; • 11 System.out.println("特殊字元之空字元碼= "+st); • 12 } • 13 }

  28. 範例12:整數(int) 之變數宣告 • 01 class Ex04_2_4 { • 02 public static void main (String[] argv) { • 03 int in; • 04 in = 65; • 05 System.out.println(“一般數值= ”+in); • 06 in = 'A'; • 07 System.out.println(“英文字母執行結果= ”+in); • 08 in = '中'; • 09 System.out.println(“中文字元執行結果= ”+in); • 10 in = '\u4E2D'; • 11 System.out.println(“Unicode執行結果= ”+in); • 12 in = 047055; • 13 System.out.println(“八進位執行結果= ”+in); • 14 in = 0x4E2D; • 15 System.out.println(“十六進位執行結果= ”+in); • 16 in = '\0'; • 17 System.out.println("特殊字元執行結果= "+in); • 18 } • 19 }

  29. 範例13:長整數(long) 之變數宣告,以一個大於int資料型態範圍長度之數值為指定值,觀察發生錯誤的原因。 • 01 class Ex04_2_5 { • 02 public static void main (String[] argv) { • 03 long lng; • 04 lng = 0xFFFFFFFFF; • 05 System.out.println("最右端無L之長整數= "+lng); • 06 } • 07 }

  30. 範例14:長整數(long) 之變數宣告,於指定值最右端加置“L”,觀察其執行結果。 • 01 class Ex04_2_5 { • 02 public static void main (String[] argv) { • 03 long lng; • 04 lng = 0xFFFFFFFFFL; • 05 System.out.println("最右端為L之長整數= "+lng); • 06 } • 07 }

  31. 範例15:浮點之變數宣告,當float變數指定值之最右端未加置“F ” 或 “f ” 時,觀察發生錯誤的原因。 • 01 class Ex04_2_6 { • 02 public static void main (String[] argv) { • 03 float ft; • 04 double dft; • 05 ft = 120.5; • 06 System.out.println(“float指定值= ”+ft); • 07 ft = 1.205E2; • 08 System.out.println(“float指定值= ”+ft); • 09 ft = 12050E-2; • 10 System.out.println(“float指定值= ”+ft); • 11 dft = 120.5; • 12 System.out.println(“double指定值= ”+dft); • 13 dft = 1.205E2; • 14 System.out.println(“double指定值= ”+dft); • 15 dft = 12050E-2; • 16 System.out.println("double指定值= "+dft); • 17 } • 18 }

  32. 範例16:浮點之變數宣告,當float變數指定值之最右端加置“F ” 或 “f ” 時,觀察其執行結果。 • 01 class Ex04_2_6 { • 02 public static void main (String[] argv) { • 03 float ft; • 04 double dft; • 05 ft = 120.5f; • 06 System.out.println(“float指定值= ”+ft); • 07 ft = 1.205E2f; • 08 System.out.println(“float指定值= ”+ft); • 09 ft = 12050E-2f; • 10 System.out.println(“float指定值= ”+ft); • 11 dft = 120.5; • 12 System.out.println(“double指定值= ”+dft); • 13 dft = 1.205E2; • 14 System.out.println(“double指定值= ”+dft); • 15 dft = 12050E-2; • 16 System.out.println("double指定值= "+dft); • 17 } • 18 }

  33. 範例17:布林值之變數宣告。 • 01 class Ex04_2_7 { • 02 public static void main (String[] argv) { • 03 boolean bn; • 04 bn = true; • 05 System.out.println("boolean指定值= "+bn); • 06 bn = false; • 07 System.out.println("boolean指定值= "+bn); • 08 } • 09 }

  34. 4-3 參考資料型別(Reference Types) • 宣告之變數若無確定之長度,該變數型態是謂 “參考型別(Reference Types)”。常用於Java程式中者有三類:矩陣、字串、與建構物件。有關建構物件變數之宣告,請參考範例7與範例8。

  35. 範例18:矩陣之變數宣告。 • 01 class Mynumber { • 02 int number; • 03 } • 04 class Ex04_3_1_1 { • 05 public static void main(String[] args) { • 06 int[ ] a; • 07 Mynumber[ ] b; • 08 a = new int[2]; • 09 a[0] = 10; • 10 a[1] = 20; • 11 System.out.println("a[0] = "+a[0]); • 12 System.out.println("a[1] = "+a[1]);

  36. 範例18:續 • 13 b = new Mynumber[2]; • 14 b[0] = new Mynumber(); • 15 b[1] = new Mynumber(); • 16 b[0].number = 30; • 17 b[1].number = 40; • 18 System.out.println("b[0].number= "+b[0].number); • 19 System.out.println("b[1].number= "+b[1].number); • 20 } • 21 }

  37. 範例19:矩陣之變數宣告、及使用大括號 “{ }” 設定矩陣各元素之指定值。 • 01 class Ex04_3_1_2 { • 02 public static void main (String[] argv) { • 03 int[ ] f = {10,20}; • 04 int[ ] g; • 05 g = new int[ ] {30,40}; • 06 System.out.println("f[0] = "+f[0]); • 07 System.out.println("f[1] = "+f[1]); • 08 System.out.println("g[0] = "+g[0]); • 09 System.out.println("g[1] = "+g[1]); • 10 } • 11 }

  38. 範例20:對稱多維矩陣變數之宣告。 • 01 class Mynumber { • 02 int n; • 03 } • 04 class Ex04_3_2_1_1 { • 06 public static void main(String[] args) { • 07 int[ ][ ] a; • 08 Mynumber[ ][ ] b; • 09 a = new int[2][2]; • 10 a[0][0] = 10; • 11 a[0][1] = 20; • 12 a[1][0] = 30; • 13 a[1][1] = 40; • 14 System.out.println("a[0][0] = "+a[0][0]); • 15 System.out.println("a[0][1] = "+a[0][1]); • 16 System.out.println("a[1][0] = "+a[1][0]); • 17 System.out.println("a[1][1] = "+a[1][1]);

  39. 範例20:續 • 18 b = new Mynumber[2][2]; • 19 b[0][0] = new Mynumber(); • 20 b[0][1] = new Mynumber(); • 21 b[1][0] = new Mynumber(); • 22 b[1][1] = new Mynumber(); • 23 b[0][0].n = 50; • 24 b[0][1].n = 60; • 25 b[1][0].n = 70; • 26 b[1][1].n = 80; • 27 System.out.println("b[0][0].n = "+b[0][0].n); • 28 System.out.println("b[0][1].n = "+b[0][1].n); • 29 System.out.println("b[1][0].n = "+b[1][0].n); • 30 System.out.println("b[1][1].n = "+b[1][1].n); • 31 } • 32 }

  40. 範例21:對稱多維矩陣變數之宣告、及使用大括號 “{ }” 設定矩陣各元素之指定值。 • class Ex04_3_2_1_2 { • public static void main (String[] argv) { • int[][] a = {{10,20},{30,40}}; • System.out.println("a[0][0] = "+a[0][0]); • System.out.println("a[0][1] = "+a[0][1]); • System.out.println("a[1][0] = "+a[1][0]); • System.out.println("a[1][1] = "+a[1][1]); • } • }

  41. 範例22:非對稱多維矩陣變數宣告。 • 01 class Ex04_3_2_2_1 { • 02 public static void main(String[] args) { • 03 int[ ][ ] a; • 04 a = new int[2][ ]; • 05 a[0] = new int[2]; • 06 a[1] = new int[3]; • 07 a[0][0] = 10; • 08 a[0][1] = 20; • 09 a[1][0] = 30; • 10 a[1][1] = 40; • 11 a[1][2] = 50; • 12 System.out.println("a[0][0] = "+a[0][0]); • 13 System.out.println("a[0][1] = "+a[0][1]); • 14 System.out.println("a[1][0] = "+a[1][0]); • 15 System.out.println("a[1][1] = "+a[1][1]); • 16 System.out.println("a[1][2] = "+a[1][2]); • 17 } • 18 }

  42. 範例23:非對稱多維矩陣變數之宣告、及使用大括號 “{ }” 設定矩陣各元素之指定值。 • 01 class Ex04_3_2_2_2 { • 02 public static void main (String[] argv) { • 03 int[ ][ ] a = {{10,20},{30,40,50}}; • 04 System.out.println("a[0][0] = "+a[0][0]); • 05 System.out.println("a[0][1] = "+a[0][1]); • 06 System.out.println("a[1][0] = "+a[1][0]); • 07 System.out.println("a[1][1] = "+a[1][1]); • 08 System.out.println("a[1][2] = "+a[1][2]); • 09 } • 10 }

  43. 範例24:字串之變數宣告。 • 01 class Ex04_3_2 { • 02 public static void main (String[] argv) { • 03 String s; • 04 s = "abcd"; • 05 System.out.println("s = "+s); • 06 s = new String("wxyz"); • 07 System.out.println("s = "+s); • 08 } • 09 }

  44. 第五章 運算關係式(Expression)

  45. 5-1 簡介 • 電腦系統對我們人類之意義,可廣義歸納為:資料儲存(Store)、資料運算(Calculation)、與資料傳輸(Transmission)。可見運算是電腦系統之一個重要環節,本章將就Java之狹義運算式(Expressions) 作詳細探討。 • 於離散數學曾定義:設有元素值a與b,若兩者之間存在某種關係元R,即可以關係式 “aRb” 表示之。我們熟悉的關係元如:“等於(=)”、“大於(>)”、“因此(→)”、“加(+)”、“乘(×)” 等均屬之。 • Java程式中之大部份敘述式(Statements),都是由運算關係式(Expressions) 所組成。運算關係式(Expressions)包括 “運算值(Operands)”與 “運算元(Operators)”,如2+3,運算值為2與3,運算元為+。

  46. 5-2 指定運算元(Assignment Operators) • 指定運算元以等號 “=” 表示之,等號之左端為變數(Variable),右端為指定值(Assign Value)。系統將右端之指定值給予左端之變數,指定值可以是一個數值、可以是一個變數、亦可以是一個運算式。

  47. 範例25:指定運算元之應用。 • 01 class Ex05_2 { • 02 public static void main (String[] argv) { • 03 int a, b, c, d; • 04 a = 15; • 05 b = 'A'; • 06 System.out.println("數值a = "+a); • 07 System.out.println("字元值b = "+b); • 08 c = b; • 09 System.out.println("變數值c = "+c); • 10 d = a + b; • 11 System.out.println("運算式值d = "+d); • 12 } • 13 }

  48. 5-3 算術運算元(Arithmetic Operators) • 算術運算元包括:加、減、乘、除、餘數,分別以+、-、*、/、% 表示之,其運算值之資料型態必需為{ byte, int, short, long, float, double},否則無法計算,有關資料型態之轉換,將於爾後再詳述。

  49. 範例26:算術運算元之應用。 • 01 class Ex05_3_1 { • 02 public static void main (String[] argv) { • 03 int a = 15, b = 2, c; • 04 c = a + b; • 05 System.out.println(“加法值c = ”+c); • 06 c = a - b; • 07 System.out.println(“減法值c = ”+c); • 08 c = a * b; • 09 System.out.println(“乘法值c = ”+c); • 10 c = a / b; • 11 System.out.println(“除法值c = ”+c); • 12 c = a % b; • 13 System.out.println("餘數值c = "+c); • 14 } • 15 }

  50. 範例27:算術運算元與複合等號之應用。 • 01 class Ex05_3_2 { • 02 public static void main (String[] argv) { • 03 int a, b = 2; • 04 a = 15; • 05 a += b; • 06 System.out.println("加法值a = "+a); • 07 a = 15; • 08 a -= b; • 09 System.out.println("減法值a = "+a);

More Related