• 沒有找到結果。

03Java基本認識.pdf

N/A
N/A
Protected

Academic year: 2021

Share "03Java基本認識.pdf"

Copied!
38
0
0

加載中.... (立即查看全文)

全文

(1)Java 基本認識 王元俊 Wang Yuan-Jiun. [email protected] 1.

(2) 學習目標 (1) • • • • •. 關鍵字 識別字 字面常數 變數 資料型態 – 基本資料型態 – 參考資料型態(物件) • Java 變數的佈署與儲存方式 • 運算式 – 運算子 – 運算元 2.

(3) 學習目標 (2) • 運算子 – 算術運算 – 關係運算 – 邏輯運算 – 指定運算 – 三元運算 – 字串串接運算 – 運算子的優先順序 • 標準輸出 • 標準輸入 3.

(4) 4.

(5) 關鍵字 (Keyword) • 關鍵字為具有語法功能的保留字 (Reserved word) ,Java 的關鍵字共有 50 個。. 來源:程式語言教學誌 -- Java 快速導覽 - 關鍵字 5.

(6) 識別字 (Identifier) • 識別字是程式中使用的名稱 (Name)。 • 程式中所用的變數名稱、常數名稱、類別名稱 等都是識別字。 – 包含程式設計師自訂,以及系統內建提供。 • Java API 中定義的名稱也屬於識別字。 – API 的全名為 Application Programming Interface,中文譯為應用程式介面。 – API 就是程式庫 (Library) ,在物件導向語言 通常改稱為類別庫,是系統提供的各種應用 的類別。 6.

(7) 識別字命名 • 類別以英文大寫字母開頭,若有多個英文單字 組成,採取大寫駝峰型 (upper camel case),例 如 SimpleGame,MyStory。 • 方法或變數(包括參數、屬性等)以英文小寫 字母開頭,若有多個英文單字組成,採取小寫 駝峰型 (lower camel case),例如 actionPerformed,setUpNetworking。. 7.

(8) 字面常數 (Literal) • 字面常數是一個符號 (notation),代表程式中的 一個固定值 (fixed value)。 • Java 的字面常數依資料型態分類有 – 整數字面常數 (integer literals) – 浮點數字面常數 (floating-point literals) – 布林字面常數 (Boolean literals) – 字元字面常數 (character literals) – 字串字面常數 (string literals) – Null 字面常數 (null literals) • 程式語言教學誌 -- Java 快速導覽 - 字面常數, http://pydoing.blogspot.tw/2010/10/java-literal.html。 8.

(9) 變數 (Variable) • 程式設計時,需要記錄某些資料,可能是文字 或者數字。 • 變數就是將資料記錄在記憶體中的某個位址時, 給它的一個名稱。 • 宣告 (Declare) 變數 – 為了能正確而且有效率的處理變數,通常需 要定義它資料型態。 – 這樣可以在編譯時,清楚的定義這個變數佔 用多少的記憶體空間,以及決定如何有效率 的處理它。. 9.

(10) 資料型態 (Data Type) • 定義變數的資料型態,以決定變數儲存時所需 要的記憶體與數值範圍。 • Java 的資料型態分為基本資料型態 (Primitive type)和參考資料型態 (Reference type) 兩類。 • 宣告變數範例 – String str; // 宣告字串變數 str – int i = 0; /* 宣告整數變數 i, 並且給初值為 0 */ – double d; // 宣告浮點數變數 d. 10.

(11) Variables.java (1) • 複製 JavaTemplate.txt 建立 C:\MyJava\Variables.java. • 修改程式如下:. 11.

(12) Variables.java (2) • 編譯與執行. 12.

(13) Java 的基本資料型態及其範圍 類別. 資料型態 bytes. bits. 資料範圍. 初始值. 字元. char (Unicode). 2. 16. '\u0000' ~'\uFFFF' 0 ~ 65535. '\u0000'. byte. 1. 8. 128 ~ 127. 0. short. 2. 16. 32768 ~ 32767. 0. int. 4. 32. 231 ~ 231  1. 0. long. 8. 64. 263 ~ 263  1. 0L. float. 4. 32. 3.4E+38 ~ 3.4E+38. 0.0F. double. 8. 64. 1.7E+308 ~ 1.7E+308. 0.0D. true 或 false. false. 整數. 浮點數. 布林值. boolean. VM 給定. 13.

(14) Java 變數的佈署與儲存方式 (1) 記憶體空間. 全域 Global. 堆疊 Stack. 堆積 Heap. 14.

(15) Java 變數的佈署與儲存方式 (2) • 全域區:存放宣告為 static 的類別成員變數, Java 程式執行期間這裡的變數資料會一直存在 著。 • 堆疊區:存放宣告為基本資料型態的變數內容, 以及參考資料型態(物件)的變數在堆積中的 參照位址。 • 堆積區:存放宣告為參考資料型態的物件實體。. 15.

(16) 基本資料型態 • 基本資料型態的變數內容儲存在記憶體堆疊區 中。例如程式中宣告區域變數,下圖則是記憶 體中的示意圖。 int n = 100;. 堆疊 n. 100 16.

(17) 參考資料型態(物件)(1) • 除了基本資料型態以外的資料型態都是參考資 料型態,例如字串 String 以及以後會談論的物 件 (object)。 • 參考資料型態的實體儲存在記憶體堆積區中, 而該物件的參照位址則是存放在記憶體堆疊區 中。例如程式宣告字串 s,以下是記憶體中的 示意圖。. 17.

(18) 參考資料型態(物件)(2) String s = new String("Hello World");. 堆疊. Hello World 0x1234 堆積. s. 0x1234 18.

(19) 運算子 (Operator) 與運算式 (Expression) • 運算式 (expression) 則是由一組一組的運算子 (operator) 與運算元 (Operand) 組成。 – 運算子(就是運算符號)代表的是運算的種 類。 – 運算元則是要運算的資料。 • 運算子可分為以下三種: 1. 一元運算子:例如 3,!flag 2. 二元運算子:例如 3  2,a > b 3. 三元運算子:例如 (x > y) ? x : y. 19.

(20) 算術運算 (1) 運算子. +  * / %. 說明 正號(一元) 加法(二元) 負號(一元) 減法(二元) 乘法 除法(商數) 餘數. 範例 +5 為正數 5 2+3為2加3 5 為負數 5 23為2減3 2*3為2乘3 3 / 2 為 3 除以 2,取商數 3 % 2 為 3 除以 2,取餘數. 20.

(21) Interest.java. 21.

(22) 算術運算 (2) 運算子. 說明. 範例. int x = 10; 前序加 1 System.out.println(++x); // 將 x 加 1,再印出 x 值 11 System.out.println(x); // 印出 x 的值 11 ++ int x = 10; 後序加 1 System.out.println(x++); // 印出 x 的值 10,將 x 加 1 System.out.println(x); // 印出 x 的值 11. . int x = 10; 前序減 1 System.out.println(x); // 將 x 減 1,再印出 x 值 9 System.out.println(x); // 印出 x 的值 9 int x = 10; 後序減 1 System.out.println(x); // 印出 x 的值 10,將 x 減 1 System.out.println(x); // 印出 x 的值 9 22.

(23) 關係運算 • 運算結果為真 (true) 或假 (false)。 運算子. 說明. 範例. ==. 等於. a == b. !=. 不等於. a != b. >. 大於. a>b. <. 小於. a<b. >=. 大於等於. a >= b. <=. 小於等於. a <= b. 23.

(24) 邏輯運算 • 運算元須為關係運算式(真或假)。 運算子. 說明. 範例. &. AND. a&b. |. OR. a|b. !. NOT. !a. Short-circuit(短路) &&. AND. a && b. ||. OR. a || b. 24.

(25) 指定運算 運算子. 說明. =. 基本指定. a = b;. +=. 加法指定. a += b; 為 a = a + b;. =. 減法指定. a = b; 為 a = a  b;. *=. 乘法指定. a *= b; 為 a = a * b;. /=. 除法指定. a /= b; 為 a = a / b; 註:b 不可為 0. %=. 餘數指定. a %= b; 為 a = a % b; 註:b 不可為 0. &=. 範例. 邏輯且指定 a &= b; 為 a = a & b;. |=. 邏輯或指定 a |= b; 為 a = a | b;. ^=. 邏輯互斥或 a ^= b; 為 a = a ^ b; (XOR) 指定 25.

(26) 三元運算 • 基本架構如下: (布林運算式) ? 布林運算式為真時的設定值 : 布林運算式為假時的設定值 • 通常配合指定運算子,將設定值指定給一個變 數,以下範例中,max 為取得 a 與 b 的較大數 值。 max = (a > b) ? a : b ;. 26.

(27) 字串串接運算 • 在 Java 中使用加號運算子 (+) 作為字串串接 (concatenation) 的運算子。 • + 號同時有兩種不同運算方式,稱為多載 (overloading)。 • Java 的多載,使用者僅可以實作在方法 (method) 上。 – 物件導向程式設計通常稱函數為方法 ,我們 在物件導向程式設計時會再詳細談到。. 27.

(28) 運算子的優先順序 • 範例:x = 1 + 2 * 3,x 的值為 7。 優先權 高. 低. 運算子. () 正 (+)、負 ()、++、、! *、/、% 加 (+)、減 () >、<、>=、<= !=、== & | && || ?: =、+=、=、*=、/=、%= 28.

(29) 練習 1. 建立一個 Expression.java 程式,自行宣告變數, 給定數值,測試前幾頁投影片的運算式,並 且輸出這些運算式的結果。. 29.

(30) 標準輸出 (Standard output) • System.out.print(x); • System.out.println(x); • 以上兩個敘述中,x 是字串型態。如果 x 不是 字串,系統會自動轉成字串。 • 函數 System.out.printf() – 格式化輸出 (formatted output) – 語法 System.out.printf("格式字串", 變數1, 變數2, ...);. 30.

(31) 常用 System.out.printf() 格式 • 整數 %d %o %x 或 %X • 字元與字串 %c %s • 浮點數 %f %e 或 %E. 十進位格式 八進位格式 十六進位格式(a ~ f 或 A ~ F) 字元 字串 小數格式,預設小數點後 6 位 指數格式 31.

(32) DemoPrintf.java (1). 32.

(33) DemoPrintf.java (2) • 執行結果. 33.

(34) 標準輸入 (Standard Input) • import java.util.Scanner; • Scanner stdin = new Scanner( System.in ); • 常用的函數 – stdin.nextInt() 輸入整數 – stdin.nextDouble() 輸入浮點數 – stdin.nextLong() 輸入長整數 – stdin.nextBoolean() 輸入布林值 – stdin.nextLine() 輸入字串(可有空白字元) – stdin.next() 輸入字串(無空白字元). 34.

(35) DemoScanner.java (1). 35.

(36) DemoScanner.java (2) • 執行結果. 為何會這樣?. 36.

(37) Interest2WithScanner.java. 37.

(38) 練習 2. 寫一個 Java 程式 F2C.java,輸入華氏溫度, 輸出相對的攝氏溫度。 5 9. 攝氏溫度 = × (華氏溫度  32) 3. 寫一個 Java 程式 C2F.java,輸入攝氏溫度, 輸出相對的華氏溫度。 華氏溫度 =. 9 5. × 攝氏溫度 + 32. 38.

(39)

參考文獻

相關文件

專門替中國人 寫的英文課本- 初上 L1~L8. 專門替中國人寫的英文課本-初上

教學流程 配合範疇 單元舉例 備註 第一步:你講我講大家講 讀、寫 水果圖片 字詞卡 字詞類別. 第二步:文章大電視 聽、讀

《評估工具》在中文閱讀(或識字)及寫作(或寫 字)方面的整體表現,以了解整體非華語學生中文

如何運用多元教學策略推行幼小銜接 ──. 校本基礎識字課程

指導語 8:請將以下國語點字標點符號讀出來? (5 個題目). 指導語 9:請將以下英文字母讀出來?

中期 Ratdolt 的大寫字母在 S,E,I 等字母則略窄;而晚期 Griffo 的各個大寫字母之寬度則明顯 縮小,除了少數字母如

封建時期 8~13世紀 羅馬體大小寫字母完備 加洛林王朝 皇室抄寫

 電腦鍵盤已經代替了筆,能夠快速打出一長串文字 ,大 多數人不會再選擇去「握筆寫字」,甚至有人都要 漸漸忘記文字