技術問答
技術文章
iT 徵才
Tag
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
26
0
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
26
篇
DAY26-物件導向設計
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-12 22:07:09
10642 瀏覽
分享至
學習目標
何謂「物件導向程式設計」?
為何使用「物件導向程式設計」?
用不用「物件導向」差在哪裡?
物件導向程式的寫法
物件導向專有名詞
物件導向三大特色
何謂「物件導向設計」
把資料與操作該資料的函數綁在一起的語法
為何使用「物件導向」?
方便程式碼重用
用不用「物件導向」差在哪裡?
不使用物件導向描述一件事
使用物件導向描述一件事
用「物件導向」優點
便於程式碼「重用」
把程式細節隱藏在物件內,
讓主程式變短,
簡化主程式邏輯
用「物件導向」缺點
「基礎建設」較繁雜龐大,
寫個簡單程式需要比傳統寫法,還要更多行
物件導向程式的寫法
先定義好參與這件事的物品有哪些(這些物品叫做 “物件”)
再定義這些物品所需的數量及行為(這些數量及行為叫做 “屬性”與“方法”)
接下來就可用物品間的互動行為 來描述整件事情是如何發生的(這部份的描述稱為“主程式”)
物件導向專有名詞
屬性(Properties)vs. 方法(Methods)
類別 (Class):物件的設計藍圖
物件 (Object):根據類別所建造出來的實體 (Instance)
利用「類別」產生出「物件」,我們稱此動作為「實體化(Instantiation)」
物件導向三大特色
封裝 (Encapsulation)
將資料 (屬性) 與操作此資料的函數 (方法) 包在一起的特性
繼承 (Inheritance)
承接另一個物件所有屬性與方法,並可以加以改造的特性
多型 (Polymorphism)
修改繼承下來的函數,使之名稱相同,但行為卻不同的特性(覆寫Overwriting)
在一個類別內定義多個同名函數,隨著傳入值或呼叫方法不同而有不同行為(多載Overloading)
重點整理
為何使用「物件導向程式設計」
方便程式碼「重用」
屬性 vs. 方法
屬性:物件內的「資料」
方法:物件內的「函數」
類別 vs. 物件
類別:物件的「設計藍圖」
物件:由類別建造出來的一個「實體」
物件導向三大特性
封裝(Encapsulation):讓你把「資料」與「函數」打成一包
繼承(Inheritance):讓你輕易拷貝另一個類別所有屬性與方法
多型(Polymorphism):覆寫(Overwriting)+ 多載(Overloading)
留言
追蹤
檢舉
上一篇
Day25-複合資料結構:字典
下一篇
Day27-物件導向設計 :封裝部分
系列文
從不懂,到玩上手的Python語言
共
30
篇
目錄
RSS系列文
訂閱系列文
9
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19651
篇
完賽人數
530
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
Win2008R2 AD無法派送印表機到 Win11 的電腦,可以用網域內的win11電腦部屬派送至其他成員電腦嗎?
作為新手想踏入MIS領域,應該讀什麼?
清掉所有cookie及暫存資料後,再次登入蝦皮還沒驗手機號前,就已偵測出我的帳號名稱!這是什麼技術?
閱讀 [技術文章] 的需求建議~
google 試算表 App Scripts 問題
zimbra blocked using cblless.anti-spam.org.cn
OCS Inventory NG
M365 Outlook無法接收到 msa.hinet.net 網域信件
匯入edge系統管理範本後,原本的傳統系統管理範本遺失了
熱門回答
作為新手想踏入MIS領域,應該讀什麼?
M365 Outlook無法接收到 msa.hinet.net 網域信件
清掉所有cookie及暫存資料後,再次登入蝦皮還沒驗手機號前,就已偵測出我的帳號名稱!這是什麼技術?
zimbra blocked using cblless.anti-spam.org.cn
google 試算表 App Scripts 問題
熱門文章
Day.6 好文件長什麼樣(命名規則・錯誤訊息格式・時間格式 ISO 8601)
Vigor2927 如何使用Windows系統與Vigor路由器建立IKEv2連線,Windows 11 ARM版本 沒辦法安裝 SmartVPN Client
版本控制是什麼?為什麼Git是必學工具?
9種數據分析方法,幫你解決90%的問題
Day 5 🔧 第一次動手:Postman 按按鈕測 2 次 產出:1 份 Collection(站/路線+到站各一支)
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}