java programming part 1 introduction n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Java Programming (Part 1) Introduction PowerPoint Presentation
Download Presentation
Java Programming (Part 1) Introduction

Loading in 2 Seconds...

play fullscreen
1 / 34

Java Programming (Part 1) Introduction - PowerPoint PPT Presentation


  • 179 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Java Programming (Part 1) Introduction' - zanta


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
java programming part 1 introduction

Java Programming (Part 1)Introduction

鄧姚文

http://w3.im.knu.edu.tw/~joseph/

joseph@im.knu.edu.tw

slide2
內容大綱
  • Java 語言簡介
  • Java 程式基礎
    • 一個簡單範例:Hello Java !
    • Java 程式基本結構
    • 資料型態與變數
    • 運算子與運算式
    • 流程控制
    • 編譯與執行 Java 程式
    • 使用執行時期參數的 Hello Java !
java java
Java 語言簡介:Java 的由來
  • 1995 年發表 by Sun Microsystems
    • 原名 Oak,Project Green,目標消費性電子產品
    • 作者 James Gosling
  • Java 最早的成功應用:
    • Java Applet:製作網頁上的動態效果
    • JavaScript:Netscape, 處理網頁上的物件
slide4
Java 語言簡介:特性、優缺點
  • 安全:受管制的 I/O、沒有 Pointer
  • 跨平台:Java 程式在虛擬機器(VM)上執行,任何環境只要實作虛擬機器,就可以執行 Java 程式
  • 簡單易學的物件導向語言
  • API 眾多,提供各種資料結構,適用各種應用
  • 穩定,良好的 Exception Handling 機制
  • 多執行緒(Multithread)
  • 缺點:速度較慢,以 Java HotSpot 改善
java java1
Java 語言簡介:Java 的重要性
  • Java 程式設計師的數量逐年暴增。
  • 絕大部分的大專院校都有開 Java 課程,資訊相關科系將 Java 列為必修的程式語言。
  • 美國的學院委員會(The College Board)決定進階教育資訊課程規劃會全部改版納入物件導向,並選用 Java 當作考試時使用的語言。
java java2
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、…
java java3
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% 以上
slide9
Java 程式基礎
  • 一個簡單範例:Hello Java !
  • Java 程式基本結構
  • 資料型態與變數
  • 運算子與運算式
  • 流程控制
  • 編譯與執行 Java 程式
  • 使用執行時期參數的 Hello Java !
hello java
一個簡單範例: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 !");

}

}

slide11
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 而不是檔案名稱。
slide12
資料型態與變數:基本資料型態
  • 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.
slide13
資料型態與變數:變數
  • 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
constant literal
資料型態與變數:常數(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”;
slide15
運算子與運算式:運算子

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: =, *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |=

slide16
運算子與運算式:運算式
  • int i = 10;
  • i <<= 2;
  • boolean hitTop = false;
  • String baseName = null;
  • i++;
  • abs = (a > 0) ? a : -a;
if then else
流程控制:if-then-else

if (a > b) {

// A

} else {

// B

}

// C

if (a > b) {

// A

}

// C

slide18

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.");

}

}

nested if then else switch
流程控制: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

}

while
流程控制:while 迴圈

while (A) {

// B

}

do {

// B

} while (A);

slide21
流程控制:for 迴圈

for (A; B; C) {

// D

}

for (int i = 0; i < names.length; i++) {

System.out.println("Hello "+names[i]);

}

break continue
流程控制:break 和 continue

for (..;..;..) {

...

if (...) {

break;

}

...

if (...) {

continue;

}

...

}

slide23

Java

Source

Java

Bytecode

Compiler

JRE

Hello.java

javac

Hello.class

java

編譯與執行 Java 程式
  • To compile
    • javac Hello.java
  • To run
    • java Hello
    • javaw Hello
hello java1
使用執行時期參數的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);

}

}

exercise
Exercise
  • 設計一個 Java 程式,計算並印出從 1 到 10 累加的結果,例如:1+2+3+4+5+6+7+8+9+10=55
  • 設計一個 Java 程式,計算並印出從 1 到 n 累加的結果,其中 n 是一個從命令列讀入的參數。
java applet
Java Applet
  • Application Let
    • 在網頁環境中執行的小應用程式

Applet

JVM

瀏覽器

helloapplet java
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);

}

}

hello applet html
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>

applet
Applet 傳參數

<HTML><HEAD><TITLE>Applet 傳參數</TITLE></HEAD>

<BODY>

<APPLET CODE="HelloApplet2" HEIGHT="200" WIDTH="200">

<PARAM NAME="name" VALUE="鄧姚文"></APPLET>

</BODY>

</HTML>

helloapplet2 java
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");

}

}

slide32
簡易UI
  • Javax.swing.JOptionPane
joptionpane

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
console
從 console 讀取

BufferedReader con = new BufferedReader(

new InputStreamReader(System.in));

String s = con.readLine();