SlideShare a Scribd company logo
Submit Search
Upload
CH05:物件封裝
Report
Share
Justin Lin
Technology / Community Evangelist at Free lancer
Follow
•
0 likes
•
316 views
1
of
53
CH05:物件封裝
•
0 likes
•
316 views
Report
Share
Download Now
Download to read offline
Technology
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
Read more
Justin Lin
Technology / Community Evangelist at Free lancer
Follow
Recommended
比特币与区块链 by
比特币与区块链
haipome
726 views
•
22 slides
Viabtc by
Viabtc
haipome
196 views
•
12 slides
区块链原理 by
区块链原理
Noah Chen
1K views
•
26 slides
区块链技术创新应用 by
区块链技术创新应用
Hardway Hou
616 views
•
23 slides
物件封裝 by
物件封裝
Justin Lin
1.1K views
•
74 slides
Java SE 7 技術手冊投影片第 05 章 - 物件封裝 by
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
2.6K views
•
75 slides
More Related Content
More from Justin Lin
Ch14 簡介 Spring Boot by
Ch14 簡介 Spring Boot
Justin Lin
872 views
•
22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/Security
Justin Lin
280 views
•
58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走
Justin Lin
274 views
•
31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMail
Justin Lin
157 views
•
8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理
Justin Lin
153 views
•
30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫
Justin Lin
233 views
•
92 slides
More from Justin Lin
(20)
Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring Boot
Justin Lin
•
872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/Security
Justin Lin
•
280 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走
Justin Lin
•
274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMail
Justin Lin
•
157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理
Justin Lin
•
153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫
Justin Lin
•
233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤
Justin Lin
•
133 views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTL
Justin Lin
•
161 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSP
Justin Lin
•
250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
•
204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理
Justin Lin
•
238 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應
Justin Lin
•
236 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 Servlet
Justin Lin
•
352 views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式
Justin Lin
•
1.2K views
14. 進階主題 by Justin Lin
14. 進階主題
Justin Lin
•
406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步
Justin Lin
•
237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能
Justin Lin
•
153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組
Justin Lin
•
149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換
Justin Lin
•
156 views
9. 資料結構 by Justin Lin
9. 資料結構
Justin Lin
•
292 views
Recently uploaded
Hacking Facebook for fun and profit by Pranav Hivarekar by
Hacking Facebook for fun and profit by Pranav Hivarekar
Pranav Hivarekar
6 views
•
69 slides
AI Technology & Development of Civilization by
AI Technology & Development of Civilization
unclebrown017
30 views
•
74 slides
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班 by
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
36 views
•
37 slides
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班 by
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
39 views
•
32 slides
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式 by
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
149 views
•
54 slides
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班 by
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
39 views
•
25 slides
Recently uploaded
(6)
Hacking Facebook for fun and profit by Pranav Hivarekar by Pranav Hivarekar
Hacking Facebook for fun and profit by Pranav Hivarekar
Pranav Hivarekar
•
6 views
AI Technology & Development of Civilization by unclebrown017
AI Technology & Development of Civilization
unclebrown017
•
30 views
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
商品辨識定位系統_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
•
36 views
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
居家雲端照護系統_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
•
39 views
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式 by Shengyou Fan
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
•
149 views
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班 by IttrainingIttraining
AIoT 智能商店_艾鍗學院-AIoT智能行動服務物聯網班
IttrainingIttraining
•
39 views
CH05:物件封裝
1.
1
2.
物件封裝 學習目標 • 瞭解封裝觀念與實現 • 定義類別、建構式與方法 •
使用方法重載與不定長度引數 • 瞭解static成員 2
3.
封裝物件初始流程 • 管理儲值卡的應用程式 3
4.
• 定義建構式(Constructor) 4
5.
• 那麼你封裝了什麼? • 你用了Java的建構式語法,實現物件初始化 流程的封裝 5
6.
封裝物件操作流程 • 進行儲值的動作 6
7.
7
8.
• 定義方法(Method) 8
9.
9
10.
10
11.
• CashCard的使用者,現在可以這麼撰寫: • 你封裝了什麼呢?你封裝了儲值的流程 11
12.
12
13.
封裝物件內部資料 • 你「希望」使用者如下撰寫程式 • 使用者可以如下撰寫程式 13
14.
• 使用private關鍵字 14
15.
15
16.
16
17.
17
18.
18
19.
• 你封裝了什麼?封裝了類別私有資料,讓使 用者無法直接存取 • 必須透過你提供的操作方法,經過定義的流 程才有可能存取私有資料 •
封裝主要就是隱藏物件細節,將物件當作黑 箱進行操作 19
20.
public權限修飾 20
21.
• 如果沒有宣告權限修飾的成員,只有在相同 套件的類別程式碼中,才可以直接存取,也 就是「套件範圍權限」 21
22.
• 其他套件的類別程式碼,想存取某套件的類 別或物件成員 22
23.
關於建構式 • 與類別名稱同名,無需宣告傳回型態的方法 • 成員a與text會初始兩次 23
24.
24
25.
• 沒有撰寫任何建構式,編譯器會自動加入一 個無參數、內容為空的預設建構式 • 自行撰寫了建構式,編譯器就不會自動建立 預設建構式 25
26.
• 重載(Overload)建構式 26
27.
• 定義方法時也可以進行重載 • 編譯時期,會根據參數型態或個數,決定要 呼叫的對應方法 27
28.
• 也可根據參數列個數的不同來設計特定流程 實作 28
29.
• 自動裝箱、拆箱問題 29
30.
• 沒有裝箱動作前可符合引數個數與型態的方法 • 裝箱動作後可符合引數個數與型態的方法 •
嘗試有不定長度引數(稍後說明)並可符合引 數型態的方法 • 找不到合適的方法,編譯錯誤 30
31.
• 在建構式參數與物件資料成員同名時,可用 this加以區別 31
32.
32
33.
• 物件初始區塊 33
34.
• 物件資料成員上也可以宣告final 34
35.
35 • 每個Ball實例都有自己的radius與PI成員
36.
36 • static類別成員
37.
• 被宣告為static的成員,是將類別名稱作為 名稱空間 37
38.
• System.out、System.in呢? 38
39.
39
40.
• 在static方法或區塊不能出現this關鍵字 40
41.
41
42.
• 有些程式碼,想在位元碼載入後執行,可以 定義static區塊 42
43.
• import static語法 43
44.
44
45.
• 不定長度引數 45
46.
• 不定長度引數是編譯器蜜糖 46
47.
• 內部類別 47
48.
• 被宣告為static的內部類別,通常是將外部 類別當作名稱空間 48
49.
49
50.
• 方法中也可以宣告類別 50
51.
• C++傳值呼叫(Call by
value)、傳參呼叫( Call by reference) • Java當中只有傳值呼叫 51
52.
52
53.
53