SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
5. 從模組到類別
• 學習目標
– 深入模組管理
– 初識物件導向
– 學習定義類別
– 定義運算子
架構程式
• 抽象層的封裝與隔離
• 物件的狀態
• 名稱空間
• 資源實體組織方式
用模組建立抽象層
• 一個 .py 檔案就是一個模組
• 模組成為 Python 中最自然的抽象層
• 想要知道一個模組中有哪些名稱,可以使
用 dir() 函式
• import 某個模組,指定的 .py 檔案載入
• python 直譯器會為它建立一個 module
實例,並建立一個模組名稱來參考它
• 銀行商務相關的簡單程式
• 透過 bank 模組名稱來進行相關的商務流程
• from import 會將被匯入模組中之名稱參
考的值,指定給目前模組中建立的新名稱
• 如果有些變數,並不想被 from import
* 建立同名變數,可以用底線作為開頭
• 例如,若 foo.py 中有以下內容:
• 定義 __all__ 清單,使用字串列出可被
from import * 的名稱:
• 若模組定義了__all__ 變數,名單中的變
數,才可以被其他模組 from import *
• 無論是底線開頭,或者是未被列入
__all__ 清單的名稱,只是限制不被
from import *
• 若使用者 import foo,依舊可以使用
foo._y 或 foo.z 來存取
• 可以使用 del 將模組名稱或者 from
import 的名稱刪除
• 模擬 import foo as qoo
• del 是用來刪除指定的名稱,而不是刪除
名稱參考的物件本身
• 想要知道目前已載入的 module 名稱與實
例有哪些,可以透過 sys.modules
• 能根據不同的情況進行不同的 import
設定 PTH 檔案
• 尋找模組時的來源
– 執行 python 直譯器時的資料夾
– PYTHONPATH 環境變數
– Python 安裝中標準程式庫等資料夾
– PTH 檔案列出的資料夾
• 在一個 .pth 檔案中列出模組搜尋路徑
• PTH 檔案的位置,不同作業系統並不相同
• 可透過 site 模組的 getsitepackages()
函式取得
• 如果確實建立了workspace.pth 中列出的
資料夾,而且將 workspace.pth 放置到
C:Program Files (x86)Python35-32
• 如果將 workspace.pth 放置到C:Program
Files (x86)Python35-32libsite-
packages
• 如果想將 PTH 檔案放置到其他資料夾,可
以使用 site.addsitedir() 函式新增
PTH 檔案的資料夾來源
初識物件導向
• 何時該以物件來思考或組織應用程式行為
呢?
• 可以從打算將物件的狀態與功能黏在一起
時開始…
• 可以將初始化流程,使用 __init__() 方
法定義在類別之中
• 方法前後各有兩個連線底線,意謂著在類
別以外的其他位置,不要直接呼叫
• 基本上都會有個函式可用來呼叫這類方法
• 在呼叫 __init__() 方法時,建立的
Account 實例會傳入作為方法的第一個參
數
• Python 的慣例中,第一個參數的名稱會命
名為 self
• 將 deposit() 以及 withdraw() 也定義
在 Account 類別之中
• 物件的方法第一個參數一定是物件本身
• 傳回物件描述字串的方法
• 若執行 str(acct) 時,就會呼叫 acct 的
__str__() 方法取得描述字串並傳回
• 類別中也可以定義 __repr__() 方法
• 當執行 repr(acct) 時,就會呼叫 acct
的 __repr__() 方法取得描述字串並傳回
• __str__() 字串描述是給人類看的
• __repr__() 是給程式、機器剖析用的特
定格式時,或者是包含除錯用的字串資訊
• 可能會有人如下誤用:
• 如果想要避免使用者直接的誤用,可以使
用 self.__xxx 的方式定義內部值域
• 不能使用 acct.__name、
acct.__number、acct.__balance 進
行屬性存取,這會引發 AttributeError
• 使用者仍然可以用另一種方式來存取:
• 基本上,可以直接定義一些方法來傳回內
部屬性的值
• 可以考慮在這類方法上加註 @property
• 可以使用 acct.name、acct.number、
acct.balance 的形式取得值
• 想要進一步提供 acct.balance =
10000 這樣的形式
• 被 @property 標註的 xxx 取值方法可以
使用@xxx.setter 標註
• 使用 @xxx.deleter 來標註對應的刪除值
之方法
• 取值方法傳回的值可以是即時運算的結果,
設值方法必要時可以使用流程語法等來實
作一些存取控制
綁定與未綁定方法
• 如果試著將 acct.deposit 或
acct.withdraw 指定給一個變數:
• 如果在類別中定義了一個方法,沒有任何
參數會怎樣呢?
• 可以透過類別名稱來呼叫它,或取得函式
物件進行呼叫:
• 取得綁定方法綁定的物件:
靜態方法與類別方法
• 當呼叫 acct.deposit(500) 時,會將
acct 參考的實例傳給 deposit() 的第一
個 self 參數,也可以如下取得相同效果:
• 如果想要有類似 deposit =
acct.deposit 的效果:
• 在定義類別時, 希望某個方法不被拿來作
為綁定方法, 可以使 @staticmethod
• acct.default(‘Monica’, ‘765-
4321’),acct 也不會傳入作為
default() 的首個參數
• 建議透過類別名稱來呼叫,明確地讓類別
名稱作為靜態方法的名稱空間
• 在 Python 中定義的類別,也會產生對應的
物件,這個物件會是 type 的實例
• 類別中的方法若標註了@classmethod,
那麼第一個參數一定是接受所在類別的
type 實例
• 必要的話,一個自定義的類別實例,也可
以作為名稱空間
• 每個物件本身,都會有個 __dict__ 屬性,
當中記錄著類別或實例所擁有的特性
• 若想取得 __dict__ 的資料,其實可以使
用 vars() 函式
• 若函式或變數以類別為名稱空間,建議透
過類別名稱來呼叫或存取
• 語義上比較清楚,一眼就可以看出函式或
變數是以類別為名稱空間
• 還可以避免以下的問題:
• 在類別上直接新增方法:
• del 可用來刪除變數,或已匯入目前模組
的名稱,也可用來刪除某個物件上的屬性
• 模組也是個物件,也可以使用 del 來刪除
模組上定義的名稱
• del 真正的作用是刪除某物件上的屬性
定義運算子
• 建立一個有理數類別
• 類別的實例如何建構,實際上是由
__new__() 方法來定義
• 由於 __new__() 若傳回第一個參數的類別
實例,就會執行 __init__() 方法
• 藉由定義 __new__() 方法,就可以決定如
何建構物件與初始物件
• 想在物件被刪除時,自行定義一些清除相
關資源的行為,可以實作 __del__() 方法

Weitere ähnliche Inhalte

Was ist angesagt?

型態與運算子
型態與運算子型態與運算子
型態與運算子Justin Lin
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Justin Lin
 
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Justin Lin
 
從模組到類別
從模組到類別從模組到類別
從模組到類別Justin Lin
 
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Justin Lin
 
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章  - 通用APIJava SE 7 技術手冊投影片第 12 章  - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用APIJustin Lin
 
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件Justin Lin
 
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Justin Lin
 
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用APIJava SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用APIJustin Lin
 
4. 使用物件
4. 使用物件4. 使用物件
4. 使用物件Justin Lin
 
資料永續與交換
資料永續與交換資料永續與交換
資料永續與交換Justin Lin
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別Justin Lin
 
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Justin Lin
 
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJustin Lin
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式Justin Lin
 
資料永續與交換
資料永續與交換資料永續與交換
資料永續與交換Justin Lin
 
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行APIJava SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行APIJustin Lin
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Justin Lin
 

Was ist angesagt? (20)

型態與運算子
型態與運算子型態與運算子
型態與運算子
 
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
 
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
 
從模組到類別
從模組到類別從模組到類別
從模組到類別
 
資料結構
資料結構資料結構
資料結構
 
Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法Java SE 8 技術手冊第 3 章 - 基礎語法
Java SE 8 技術手冊第 3 章 - 基礎語法
 
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章  - 通用APIJava SE 7 技術手冊投影片第 12 章  - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
 
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
 
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
Java SE 8 技術手冊第 18 章 - 自訂泛型、列舉與標註
 
Java SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用APIJava SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
 
4. 使用物件
4. 使用物件4. 使用物件
4. 使用物件
 
資料永續與交換
資料永續與交換資料永續與交換
資料永續與交換
 
5. 從模組到類別
5. 從模組到類別5. 從模組到類別
5. 從模組到類別
 
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
Java SE 7 技術手冊投影片第 16 章 - 自訂泛型、列舉與標註
 
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式
 
資料永續與交換
資料永續與交換資料永續與交換
資料永續與交換
 
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行APIJava SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
 
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
 
物件封裝
物件封裝物件封裝
物件封裝
 

Andere mochten auch

從 REPL 到 IDE
從 REPL 到 IDE從 REPL 到 IDE
從 REPL 到 IDEJustin Lin
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組Justin Lin
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知Justin Lin
 
Python 起步走
Python 起步走Python 起步走
Python 起步走Justin Lin
 
OpenSCAD Workshop
OpenSCAD WorkshopOpenSCAD Workshop
OpenSCAD WorkshopJustin Lin
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式Justin Lin
 
類別的繼承
類別的繼承類別的繼承
類別的繼承Justin Lin
 
Python 3 Programming Language
Python 3 Programming LanguagePython 3 Programming Language
Python 3 Programming LanguageTahani Al-Manie
 
Python Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web DevelopmentPython Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web DevelopmentP3 InfoTech Solutions Pvt. Ltd.
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能Justin Lin
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿Justin Lin
 
並行與平行
並行與平行並行與平行
並行與平行Justin Lin
 
PyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialPyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialJustin Lin
 
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCADJustin Lin
 
常用內建模組
常用內建模組常用內建模組
常用內建模組Justin Lin
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘Chen-Pan Liao
 

Andere mochten auch (19)

從 REPL 到 IDE
從 REPL 到 IDE從 REPL 到 IDE
從 REPL 到 IDE
 
例外處理
例外處理例外處理
例外處理
 
open() 與 io 模組
open() 與 io 模組open() 與 io 模組
open() 與 io 模組
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
 
Python 起步走
Python 起步走Python 起步走
Python 起步走
 
OpenSCAD Workshop
OpenSCAD WorkshopOpenSCAD Workshop
OpenSCAD Workshop
 
流程語法與函式
流程語法與函式流程語法與函式
流程語法與函式
 
類別的繼承
類別的繼承類別的繼承
類別的繼承
 
Python
PythonPython
Python
 
Python 3 Programming Language
Python 3 Programming LanguagePython 3 Programming Language
Python 3 Programming Language
 
Python Programming Essentials - M22 - File Operations
Python Programming Essentials - M22 - File OperationsPython Programming Essentials - M22 - File Operations
Python Programming Essentials - M22 - File Operations
 
Python Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web DevelopmentPython Programming Essentials - M44 - Overview of Web Development
Python Programming Essentials - M44 - Overview of Web Development
 
除錯、測試與效能
除錯、測試與效能除錯、測試與效能
除錯、測試與效能
 
《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿《Python 3.5 技術手冊》第二章草稿
《Python 3.5 技術手冊》第二章草稿
 
並行與平行
並行與平行並行與平行
並行與平行
 
PyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 TutorialPyCon Taiwan 2013 Tutorial
PyCon Taiwan 2013 Tutorial
 
3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
 
常用內建模組
常用內建模組常用內建模組
常用內建模組
 
初學R語言的60分鐘
初學R語言的60分鐘初學R語言的60分鐘
初學R語言的60分鐘
 

Ähnlich wie 從模組到類別

Python面向对象开发基础篇
Python面向对象开发基础篇Python面向对象开发基础篇
Python面向对象开发基础篇modou li
 
02 Objective-C
02 Objective-C02 Objective-C
02 Objective-CTom Fan
 
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection[圣思园][Java SE]Reflection
[圣思园][Java SE]ReflectionArBing Xie
 
Programming python - part 2
Programming python - part 2Programming python - part 2
Programming python - part 2Che-Cheng Hsu
 
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝Justin Lin
 
5, initialization & cleanup
5, initialization & cleanup5, initialization & cleanup
5, initialization & cleanupted-xu
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題Justin Lin
 
Programming python - part 1
Programming python - part 1Programming python - part 1
Programming python - part 1Che-Cheng Hsu
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试lydiafly
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdfczzz1
 
16 CoreData
16 CoreData16 CoreData
16 CoreDataTom Fan
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509tidesq
 
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programmingted-xu
 
flagboot learning framework technology sharing
flagboot learning framework technology sharingflagboot learning framework technology sharing
flagboot learning framework technology sharingxastraxastra
 

Ähnlich wie 從模組到類別 (20)

Python面向对象开发基础篇
Python面向对象开发基础篇Python面向对象开发基础篇
Python面向对象开发基础篇
 
02 Objective-C
02 Objective-C02 Objective-C
02 Objective-C
 
[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection[圣思园][Java SE]Reflection
[圣思园][Java SE]Reflection
 
Programming python - part 2
Programming python - part 2Programming python - part 2
Programming python - part 2
 
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
 
5, initialization & cleanup
5, initialization & cleanup5, initialization & cleanup
5, initialization & cleanup
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
 
Programming python - part 1
Programming python - part 1Programming python - part 1
Programming python - part 1
 
Spark tutorial
Spark tutorialSpark tutorial
Spark tutorial
 
進階主題
進階主題進階主題
進階主題
 
Hibernate教程
Hibernate教程Hibernate教程
Hibernate教程
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
 
模块一-Go语言特性.pdf
模块一-Go语言特性.pdf模块一-Go语言特性.pdf
模块一-Go语言特性.pdf
 
Study research in April
Study research in AprilStudy research in April
Study research in April
 
16 CoreData
16 CoreData16 CoreData
16 CoreData
 
輸入輸出
輸入輸出輸入輸出
輸入輸出
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
 
2, object oriented programming
2, object oriented programming2, object oriented programming
2, object oriented programming
 
组合、备忘录、建造者模式、原型
组合、备忘录、建造者模式、原型组合、备忘录、建造者模式、原型
组合、备忘录、建造者模式、原型
 
flagboot learning framework technology sharing
flagboot learning framework technology sharingflagboot learning framework technology sharing
flagboot learning framework technology sharing
 

Mehr von Justin Lin

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
 
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
 
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤Justin Lin
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTLJustin Lin
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSPJustin Lin
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Justin Lin
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理Justin Lin
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應Justin Lin
 
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletJustin Lin
 
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式Justin Lin
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步Justin Lin
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能Justin Lin
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組Justin Lin
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換Justin Lin
 
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構Justin Lin
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組Justin Lin
 

Mehr von Justin Lin (20)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
 
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
 
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
 
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
 
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
 

從模組到類別