1 / 34

Java Programming (Part 1) Introduction

Java Programming (Part 1) Introduction. 鄧姚文 http://w3.im.knu.edu.tw/~joseph/ joseph@im.knu.edu.tw. 內容大綱. Java 語言簡介 Java 程式基礎 一個簡單範例: Hello Java ! Java 程式基本結構 資料型態與變數 運算子與運算式 流程控制 編譯與執行 Java 程式 使用執行時 期參數的 Hello Java !. Java 語言簡介: Java 的由來. 1995 年發表 by Sun Microsystems

zanta
Télécharger la présentation

Java Programming (Part 1) Introduction

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 Programming (Part 1)Introduction 鄧姚文 http://w3.im.knu.edu.tw/~joseph/ joseph@im.knu.edu.tw

  2. 內容大綱 • Java 語言簡介 • Java 程式基礎 • 一個簡單範例:Hello Java ! • Java 程式基本結構 • 資料型態與變數 • 運算子與運算式 • 流程控制 • 編譯與執行 Java 程式 • 使用執行時期參數的 Hello Java !

  3. Java 語言簡介:Java 的由來 • 1995 年發表 by Sun Microsystems • 原名 Oak,Project Green,目標消費性電子產品 • 作者 James Gosling • Java 最早的成功應用: • Java Applet:製作網頁上的動態效果 • JavaScript:Netscape, 處理網頁上的物件

  4. Java 語言簡介:特性、優缺點 • 安全:受管制的 I/O、沒有 Pointer • 跨平台:Java 程式在虛擬機器(VM)上執行,任何環境只要實作虛擬機器,就可以執行 Java 程式 • 簡單易學的物件導向語言 • API 眾多,提供各種資料結構,適用各種應用 • 穩定,良好的 Exception Handling 機制 • 多執行緒(Multithread) • 缺點:速度較慢,以 Java HotSpot 改善

  5. Java 語言簡介:Java 的重要性 • Java 程式設計師的數量逐年暴增。 • 絕大部分的大專院校都有開 Java 課程,資訊相關科系將 Java 列為必修的程式語言。 • 美國的學院委員會(The College Board)決定進階教育資訊課程規劃會全部改版納入物件導向,並選用 Java 當作考試時使用的語言。

  6. Java 語言簡介:Java 的版本 • J2SE (Standard Edition) • JDK 1.2 以後的版本,稱為 Java 2 • 一般程式製作、GUI、資料庫存取、網路介面、JavaBeans 、… • J2EE (Enterprise Edition) • N-Tier Applications、Web Applications、… • J2ME (Micro Edition) • PDA、手機、Smart Card、…

  7. Java 語言簡介:Java 認證考試 • SCJP (Sun Certified Java Programmer) • 標準:60 題選擇答對 70% 以上 • SCJD (Sun Certified Java Developer) • 第一階段標準:程式設計題 • 第二階段標準:5-10 題簡答題答對 70% 以上 • SCAJ (Sun Certified Architect for J2EE) • 60 題複選簡答,答對 75% 以上 • SCWD (Sun Certified Web Component Developer) • 60 題複選簡答,答對 61% 以上

  8. Java 程式基礎 • 一個簡單範例:Hello Java ! • Java 程式基本結構 • 資料型態與變數 • 運算子與運算式 • 流程控制 • 編譯與執行 Java 程式 • 使用執行時期參數的 Hello Java !

  9. 一個簡單範例:Hello Java ! • Compile the program: • javac Hello.java • Run the program: • java Hello public class Hello { public static void main(String[] args) { System.out.println("Hello Java !"); } }

  10. Java 程式基本結構 • 每一支程式就是 Class • Source file 的名字一定要跟 Class 的名字相同,大小寫也一定要一樣,副檔名為 .java。 • public static void main(String[] args) 為程式的進入點 • main method 一定要宣告成 public static void,因為它一定要能夠被外部的 class loader 存取,而且要在一開始就存在,而且不能夠有傳回值。 • System 是系統物件,out 指 stdout,println 印完之後會換行。 • JRE class loader 需要的是 class name 而不是檔案名稱。

  11. 資料型態與變數:基本資料型態 • boolean: The value is true or false. • char: 16-bit Unicode. • byte: 8-bit signed integer. • short: 16-bit signed integer. • int: 32-bit signed integer. • long: 64-bit signed integer. • float: 32-bit signed floating point number. • double: 64-bit signed floating point number.

  12. 資料型態與變數:變數 • TypeName variableName = INI_VALUE; • double mathScore = 75.5; • ClassName variableName = INI_VALUE; • String authorName = “Bill Day”; • ClassName varName = new ClassName(); • Hashtable ht = new Hashtable(); • 命名規則 • ClassName • variableName

  13. 資料型態與變數:常數(Constant & Literal) • final int PASS_SCORE = 60; • final long LONG_ONE = 14L; • final int HEX_MASK = 0x0e; • final int OCT_MASK = 016; • final float PI = 3.14; • final double PI = 3.14F; • final double PI = 314e-2; • final String LANGUAGE = “Java”;

  14. 運算子與運算式:運算子 15: L: ., [], (args), (post)++, (post)-- 14: R: ++(pre), --(pre), +(Positive), -(negative), ~, ! 13: R: new, (type) 12: L: *, /, % 11: L: +, - 10: L: <<, >>, >>> 9: L: <, <=, >, >=, instanceof 8: L: ==, != 7: L: & 6: L: ^ 5: L: | 4: L: && 3: L: || 2: R: ?: 1: R: =, *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |=

  15. 運算子與運算式:運算式 • int i = 10; • i <<= 2; • boolean hitTop = false; • String baseName = null; • i++; • abs = (a > 0) ? a : -a;

  16. 流程控制:if-then-else if (a > b) { // A } else { // B } // C if (a > b) { // A } // C

  17. public class EvenOdd { public static void main(String[] args) { if (args.length != 1) { System.err.println("Parameter required."); System.exit(1); } int i = Integer.parseInt(args[0]); String msg = (i % 2 == 0) ? "EVEN" : "ODD"; System.out.println("" + i + " is an " + msg + " number."); } }

  18. 流程控制:nested if-then-else, switch if (a == 0) { // A } else { if (a == 1) { // B } else { if (a == 2) { // C } else { // D } } } if (a == 0) { // A } else if (a == 1) { // B } else if (a == 2) { // C } else { // D } switch (a) { case 0: // A break; case 1: // B break; case 2: // C break; default: // D }

  19. 流程控制:while 迴圈 while (A) { // B } do { // B } while (A);

  20. 流程控制:for 迴圈 for (A; B; C) { // D } for (int i = 0; i < names.length; i++) { System.out.println("Hello "+names[i]); }

  21. 流程控制:break 和 continue for (..;..;..) { ... if (...) { break; } ... if (...) { continue; } ... }

  22. Java Source Java Bytecode Compiler JRE Hello.java javac Hello.class java 編譯與執行 Java 程式 • To compile • javac Hello.java • To run • java Hello • javaw Hello

  23. JDK JRE JVM 編譯與執行 Java 程式:執行環境

  24. 使用執行時期參數的Hello Java ! public class Hello2 { public Hello2(String[] names) { for (int i = 0; i < names.length; i++) { System.out.println("Hello "+names[i]+" !"); } } public static void main(String[] args) { Hello2 h = new Hello2(args); } }

  25. Exercise • 設計一個 Java 程式,計算並印出從 1 到 10 累加的結果,例如:1+2+3+4+5+6+7+8+9+10=55 • 設計一個 Java 程式,計算並印出從 1 到 n 累加的結果,其中 n 是一個從命令列讀入的參數。

  26. Java Applet • Application Let • 在網頁環境中執行的小應用程式 Applet JVM 瀏覽器

  27. HelloApplet.java import java.applet.Applet; import java.awt.*; public class HelloApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello Applet !!", 50, 50); } }

  28. hello_applet.html <HTML> <HEAD><TITLE>Title</TITLE></HEAD> <BODY> <APPLET CODE="HelloApplet" HEIGHT="200" WIDTH="200"> This browser does not appear to support Applets. </APPLET> </BODY> </HTML>

  29. Applet 傳參數 <HTML><HEAD><TITLE>Applet 傳參數</TITLE></HEAD> <BODY> <APPLET CODE="HelloApplet2" HEIGHT="200" WIDTH="200"> <PARAM NAME="name" VALUE="鄧姚文"></APPLET> </BODY> </HTML>

  30. HelloApplet2.java import javax.swing.*; import java.awt.*; public class HelloApplet2 extends JApplet { private String name = null; public void paint(Graphics g) { g.drawString(name + " 您好!", 100, 100); } public void init() { this.name = this.getParameter("name"); } }

  31. 簡易UI • Javax.swing.JOptionPane

  32. import javax.swing.*; public class Square { public Square(){ String s = JOptionPane.showInputDialog("請輸入一個整數"); int n = Integer.parseInt(s); int nn = n * n; JOptionPane.showMessageDialog(null, s + " 的平方為: " + nn, "計算平方數", JOptionPane.PLAIN_MESSAGE); } public static void main(String[] args){ Square square = new Square(); } } JOptionPane

  33. 從 console 讀取 BufferedReader con = new BufferedReader( new InputStreamReader(System.in)); String s = con.readLine();

More Related