1 / 36

第四單元

第四單元. 宣告、初始化和使用變數. 單元概論. 單元目標 學習變數的使用方法與定義變數的語法 列出 Java 程式語言的八個基本型別 根據 Java 程式語言的指導方針和語法規則來宣告、初始化及使用變數與常數 使用運算子( operator )來更改變數值 使用晉升( promotion )與型別轉換( type casting ) 問題與討論. 學習變數的使用和語法. 範例: 1 public class Shirt { 2 3 public int shirtID = 0; // 襯衫的預設 ID

Télécharger la présentation

第四單元

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. 第四單元 宣告、初始化和使用變數

  2. 單元概論 • 單元目標 • 學習變數的使用方法與定義變數的語法 • 列出Java程式語言的八個基本型別 • 根據Java程式語言的指導方針和語法規則來宣告、初始化及使用變數與常數 • 使用運算子(operator)來更改變數值 • 使用晉升(promotion)與型別轉換(type casting) • 問題與討論

  3. 學習變數的使用和語法 範例: 1 public class Shirt { 2 3 public int shirtID = 0; // 襯衫的預設 ID 4 public String description = “-description required-”; // 預設 5 6 // 顏色代碼為 R=紅色, B=藍色, G=綠色, U=未設定 7 public char colorCode = ‘U’; 8 9 public double price = 0.0; // 所有襯衫的預設價格 10 11 public int quantityInStock = 0; // 所有襯衫的預設數量 12 13 // 這方法印出項目的所有值 14 public void displayShirtInformation() { 15 16 System.out.println(“Shirt ID: “ + shirtID); 17 System.out.println(“Shirt description:” + description);

  4. 18 System.out.println(“Color Code: “ + colorCode); 19 System.out.println(“Shirt price: “ + price); 20 System.out.println(“Quantity in stock: “ + quantityInStock); 21 22 } // display方法的結尾 23 } // 類別的結尾

  5. 變數的使用 • 紀錄物件實體中唯一的資料 • 指派一個變數值給其他變數 • 在數學表示式中用來代表數值 • 在螢幕中印出變數值 • 儲存參考至其他物件

  6. 變數的宣告與初始化 • 語法(屬性或實體變數): [modifiers] type identifier = [value]; • 語法(區域變數): type identifier; • 語法(區域變數): type identifier = [value]; • 範例: public int shirtID = 0; public String description = "-description required-"; public char colorCode = ’U’; public double price = 0.0; public int quantityInStock = 0;

  7. 描述基本資料型別 • 整數型別(byte、short、int和long) • 浮點數型別(float和double) • 字元型別(char) • 邏輯型別(boolean)

  8. 整數型別

  9. 整數基本型別 public int shirtID = 0; // 襯衫預設的 ID public int quantityInStock = 0; // 所有襯衫預設的數量

  10. 浮點數基本型別 public double price = 0.0; // 所有襯衫預設的價格

  11. 文字基本型別 • 唯一的資料型別為char • 用來儲存16bits的單一字元,如’y’字元 • 範例: public char colorCode = ’U’;

  12. 邏輯基本型別 • 唯一的資料型別為boolean • 只能用來儲存true或false • 用來儲存運算式的運算結果為true或false

  13. 變數命名 • 命名規則: • 變數識別字必須以大寫或小寫字母、底線(_)或錢字符號($)作為開頭字母。 • 變數識別字不要使用標點符號、空白、破折號或任何Java程式語言的關鍵字。

  14. 變數命名 • 命名準則: • 以小寫字母為每個變數的開頭;隨後的單字就以大寫字母為開頭,如:myVariable。 • 選擇可以幫助記憶,並設計可以讓使用者了解此變數使用目的的變數名。

  15. 指派一個變數值 • 範例: price = 12.99; • 範例(boolean): boolean isOpen = false;

  16. 在一行程式中宣告與初始化變數 • 語法: type identifier = value [, identifier = value]; • 範例: double price = 0.0, wholesalePrice = 0.0;

  17. 其他宣告與初始化變數的方法 • 指派字面字(literal)值: int ID = 0; float pi = 3.14F; char myChar = ’G’; boolean isOpen = false; • 指派一個變數值給另一個變數: int ID = 0; int saleID = ID;

  18. 其他宣告與初始化變數的方法 • 將運算式的結果指派給整數、浮點數或布林變數 float numberOrdered = 908.5F; float casePrice = 19.99F; float price = (casePrice * numberOrdered); int hour = 12; boolean isOpen = (hour > 8); • 指派方法呼叫的回傳值給變數

  19. 常數 • 變數(可更改): double salesTax = 6.25; • 常數(不可更改): final double SALES_TAX = 6.25; • 命名準則-常數全部的字母都為大寫並使用底線(_)來分開詞句。

  20. 儲存於記憶體內的基本資料型別與常數

  21. 練習一:在程式中使用基本資料型別變數 • 目標 • 步驟 • 討論

  22. 標準數學運算子

  23. 遞增與遞減運算子 • 長的表示方式: age = age + 1 • 短的表示方式:

  24. 遞增與遞減運算子(++與--) 範例: int count=15; int a, b, c, d; a = count++; b = count; c = ++count; d = count; System.out.println(a + “, “ + b + “, “ + c + “, “ + d);

  25. 運算子的優先順序 • 運算子優先順序的規則 • 有一對圓括弧的運算子 • 遞增及遞減運算子 • 乘法與除法運算子是由左而右做計算 • 加法與減法運算子是由左而右做計算 • 需要運算子優先順序的範例: c = 25 - 5 * 4 / 2 - 10 + 4; 答案是34或9呢?

  26. 使用圓括弧 範例: c = (((25 - 5) * 4) / (2 - 10)) + 4; c = ((20 * 4) / (2 - 10)) + 4; c = (80 / (2 - 10)) + 4; c = (80 / -8) + 4; c = -10 + 4; c = -6;

  27. 晉升與型別轉換 • 問題: int num1 = 53; // 32 bits 記憶體來儲存值 int num2 = 47; // 32 bits 記憶體來儲存值 byte num3; // 預留 8 bits 記憶體 num3 = (num1 + num2); // 會造成編譯錯誤 • 解法: int num1 = 53; int num2 = 47; long num3; num3 = (num1 + num2);

  28. 晉升 • 自動發生的晉升: • 如果你指派一個較小型別的變數給一個較大型別的變數時 • 如果你指派一個整數型別的變數給一個浮點數型別的變數時 • 自動發生晉升的範例: long big = 6; int small = 99L;

  29. 型別轉換 • 語法: identifier = (target_type) value • 問題: int num1 = 53; // 32 bits 記憶體來存放值 int num2 = 47; // 32 bits 記憶體來存放值 byte num3; // 預留 8 bits 記憶體 num3 = (num1 + num2); // 發生編譯錯誤 • 解法: int num1 = 53; // 32 bits 記憶體來存放值 int num2 = 47; // 32 bits 記憶體來存放值 byte num3; // 預留 8 bits 記憶體 num3 = (byte)(num1 + num2); // 沒有資料遺失

  30. 型別轉換 範例: int myInt; long myLong = 99L; myInt = (int) (myLong); // 沒有資料遺失,只有零被刪除 // 更大的數目將會造成資料遺失 // 失 int myInt; long myLong = 123987654321L; myInt = (int) (myLong); // 數目會被截掉

  31. 編譯器對整數與浮點數資料型別的假設 • 問題: short a, b, c; a = 1 ; b = 2 ; c = a + b ; • 解法: • 在開始的宣告中,宣告c變數為int型別: int c; • 在指派那行中,對(a+b)的結果作型別轉換: c = (short) (a+b);

  32. 浮點數資料型別與指派 • 問題: float float1 = 27.9; • 解法: • F用來提醒編譯器27.9是float型別: float float1 = 27.9F; • 27.9被轉換成float型別: float float1 = (float) 27.9;

  33. 範例 1 public class Person { 2 3 public int ageYears = 32; 4 5 public void calculateAge() { 6 7 int ageDays = ageYears * 365; 8 long ageSeconds = ageYears * 365 * 24L * 60 * 60; 9 10 System.out.println(“You are “ + ageDays + “ days old.”); 11 System.out.println(“You are “ + ageSeconds + “ seconds old.”); 12 13 } // calculateAge 方法的結尾 14 } // 類別的結尾

  34. 練習二:使用運算子與型別轉換 • 目標 • 步驟 • 討論 • 解答

More Related