Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CH05:物件封裝

瞭解封裝觀念與實現
定義類別、建構式與方法
使用方法重載與不定長度引數
瞭解static成員

  • Be the first to comment

  • Be the first to like this

CH05:物件封裝

  1. 1. 1
  2. 2. 物件封裝 學習目標 • 瞭解封裝觀念與實現 • 定義類別、建構式與方法 • 使用方法重載與不定長度引數 • 瞭解static成員 2
  3. 3. 封裝物件初始流程 • 管理儲值卡的應用程式 3
  4. 4. • 定義建構式(Constructor) 4
  5. 5. • 那麼你封裝了什麼? • 你用了Java的建構式語法,實現物件初始化 流程的封裝 5
  6. 6. 封裝物件操作流程 • 進行儲值的動作 6
  7. 7. 7
  8. 8. • 定義方法(Method) 8
  9. 9. 9
  10. 10. 10
  11. 11. • CashCard的使用者,現在可以這麼撰寫: • 你封裝了什麼呢?你封裝了儲值的流程 11
  12. 12. 12
  13. 13. 封裝物件內部資料 • 你「希望」使用者如下撰寫程式 • 使用者可以如下撰寫程式 13
  14. 14. • 使用private關鍵字 14
  15. 15. 15
  16. 16. 16
  17. 17. 17
  18. 18. 18
  19. 19. • 你封裝了什麼?封裝了類別私有資料,讓使 用者無法直接存取 • 必須透過你提供的操作方法,經過定義的流 程才有可能存取私有資料 • 封裝主要就是隱藏物件細節,將物件當作黑 箱進行操作 19
  20. 20. public權限修飾 20
  21. 21. • 如果沒有宣告權限修飾的成員,只有在相同 套件的類別程式碼中,才可以直接存取,也 就是「套件範圍權限」 21
  22. 22. • 其他套件的類別程式碼,想存取某套件的類 別或物件成員 22
  23. 23. 關於建構式 • 與類別名稱同名,無需宣告傳回型態的方法 • 成員a與text會初始兩次 23
  24. 24. 24
  25. 25. • 沒有撰寫任何建構式,編譯器會自動加入一 個無參數、內容為空的預設建構式 • 自行撰寫了建構式,編譯器就不會自動建立 預設建構式 25
  26. 26. • 重載(Overload)建構式 26
  27. 27. • 定義方法時也可以進行重載 • 編譯時期,會根據參數型態或個數,決定要 呼叫的對應方法 27
  28. 28. • 也可根據參數列個數的不同來設計特定流程 實作 28
  29. 29. • 自動裝箱、拆箱問題 29
  30. 30. • 沒有裝箱動作前可符合引數個數與型態的方法 • 裝箱動作後可符合引數個數與型態的方法 • 嘗試有不定長度引數(稍後說明)並可符合引 數型態的方法 • 找不到合適的方法,編譯錯誤 30
  31. 31. • 在建構式參數與物件資料成員同名時,可用 this加以區別 31
  32. 32. 32
  33. 33. • 物件初始區塊 33
  34. 34. • 物件資料成員上也可以宣告final 34
  35. 35. 35 • 每個Ball實例都有自己的radius與PI成員
  36. 36. 36 • static類別成員
  37. 37. • 被宣告為static的成員,是將類別名稱作為 名稱空間 37
  38. 38. • System.out、System.in呢? 38
  39. 39. 39
  40. 40. • 在static方法或區塊不能出現this關鍵字 40
  41. 41. 41
  42. 42. • 有些程式碼,想在位元碼載入後執行,可以 定義static區塊 42
  43. 43. • import static語法 43
  44. 44. 44
  45. 45. • 不定長度引數 45
  46. 46. • 不定長度引數是編譯器蜜糖 46
  47. 47. • 內部類別 47
  48. 48. • 被宣告為static的內部類別,通常是將外部 類別當作名稱空間 48
  49. 49. 49
  50. 50. • 方法中也可以宣告類別 50
  51. 51. • C++傳值呼叫(Call by value)、傳參呼叫( Call by reference) • Java當中只有傳值呼叫 51
  52. 52. 52
  53. 53. 53

    Be the first to comment

瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員

Views

Total views

198

On Slideshare

0

From embeds

0

Number of embeds

0

Actions

Downloads

30

Shares

0

Comments

0

Likes

0

×