104學習

物件導向程式設計

物件導向程式設計
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
「物件導向程式設計:負責設計、開發及維護物件導向應用程式,確保系統架構的彈性與可擴充性。需具備扎實的編程基礎,熟悉如Java、C++或Python等物件導向語言,並具有分析問題與解決問題的能力。要求具備良好的跨部門協作能力,以促進與產品、測試及運維團隊的有效溝通。在台灣職場中,需適應快速變化的技術環境,並掌握敏捷開發流程,以支持快速交付及迭代發展。」
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

物件導向程式設計 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/22

Python封裝(Encapsulation)實用教學
Q:什麼是Python封裝(Encapsulation)
封裝(Encapsulation)的概念就有點像權限控制,有些屬性(Attribute)或方法(Method)只想於類別內部使用,而不想公開於外部,除了減少程式碼因來源端不適當的使用發生問題外,也可保護其中重要的商業邏輯。
一般情況下,來源端皆可存取類別中公開的屬性(Attribute)及方法(Method),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.author = "Mike" # 作者屬性
self.titles = [] # 文章標題屬性
def add_post(self, title): # 新增文章
self.titles.append(title)
blog = Blog()
blog.add_post("Python Programming")
blog.add_post("Learn How to Code")
print("Author: ", blog.author)
print("Blog Titles: ", blog.titles)
如果我們要防止來源端存取作者屬性(Attribute)及呼叫新增文章標題方法(Method),則需透過封裝(Encapsulation)的概念來進行設計。接下來就分別說明如何封裝(Encapsulation)類別中的屬性(Attribute)及方法(Method)。
Q:什麼是私有屬性(Private Attribute)?
在類別(Class)中可以進行存取,而外部無法存取的屬性(Attribute)。使用方式就是在私有屬性(Private Attribute)前加上兩個底線(__),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.__author = "Mike" # 作者屬性
self.__titles = [] # 文章標題屬性
def __add_post(self, title): # 新增文章
self.__titles.append(title)
blog = Blog()
print(blog.__author)
從範例中可以看到,來源端無法存取到類別中的author及titles私有屬性(Private Attribute)。如果是利用Visual Studio Code來開發Python的話,在來源端物件的IntelliSense清單中就選不到私有屬性(Private Attribute),證明成功將其進行封裝(Encapsulation)。
但是Python不像其他物件導向程式語言真的把屬性(Attribute)或方法(Method)變為私有,事實上來源端還是可以存取得到。Python事實上把加了兩個底線的私有屬性(Private Attribute)重新命名,在前面加上了底線類別名稱,來源端只要透過此名稱還是可以進行存取,如下範例:
blog = Blog()
print(blog._Blog__author) #執行結果為:Mike
所以在類別中的屬性(Attribute)或方法(Method)加上兩個底線(__)主要是告訴來源端此屬性(Attribute)或方法(Method)為私有,避免來源端直接或意外的存取。
Q:什麼是私有方法(Private Method)?
在類別(Class)中可以進行存取,而外部無法存取的方法(Method)。和私有屬性(Private Attribute)作法相同,在私有方法(Private Method)前面加上兩個底線(__),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.__author = "Mike" # 作者屬性
self.__titles = [] # 文章標題屬性
def __add_post(self, title): # 新增文章
self.__titles.append(title)
blog = Blog()
blog.__add_post("Python tutorials")
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-encapsulation.html )網站觀看更多精彩內容。
看更多
0 0 1767 0

104學習精選課程

看更多課程
想提升職場競爭力?專業技能課程看起來👇
104學習

07/24 00:00

1361 48
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/21

Python繼承(Inheritance)實用教學
Q:如何使用Python繼承?
將共同的屬性(Attribute)或方法(Method)定義在一個類別(Class)中,而其它類別(Class)則透過繼承(Inheritance)的方式來擁有它,如下範例:
class Transportation: # 交通工具
def __init__(self):
self.color = "white"
def drive(self): # 駕駛方法
print("drive method is called.")
class Car(Transportation):
def accelerate(self): # 加速方法
print("accelerate is method called.")
class Airplane(Transportation):
def fly(self): # 飛行方法
print("fly method is called.")
Transportation類別(Class)就叫父類別或基底類別(Base Class),而Car及Airplane類別(Class)就稱為子類別(Sub Class),在類別名稱的地方透過括號的方式來繼承(Inheritance),藉此擁有父類別公開的屬性(Attribute)及方法(Method),如下範例:
mazda = Car()
mazda.drive()
print(mazda.color)
Q:什麼是方法覆寫?
當子類別中定義了和父類別同名的方法(Method),這時候子類別的物件(Object)呼叫這個同名方法時,其中的實作內容將會覆蓋掉父類別的同名方法,這就叫做方法覆寫(Method Overriding),如下範例:
class Transportation: # 交通工具
def drive(self): # 駕駛方法
print("Base class drive method is called.")
class Car(Transportation):
def drive(self):
print("Sub class drive method is called.")
mazda = Car()
mazda.drive()
這時候如果我們想在子類別中執行父類別的方法(Method)時,則可以使用super()內建方法來達成,如下範例:
class Transportation: # 交通工具
def drive(self): # 駕駛方法
print("Base class drive method is called.")
class Car(Transportation):
def drive(self):
super().drive()
print("Sub class drive method is called.")
mazda = Car()
mazda.drive()
Q:什麼是多層繼承?
就是繼承(Inheritance)的層級超過一層以上,如下範例:
class Animal: # 動物類別
pass
class Bird(Animal):
def fly(self):
print("fly")
class Duck(Bird):
pass
duck = Duck()
duck.fly()
Q:什麼是多重繼承?
就是子類別繼承(Inheritance)一個以上的父類別,並且各類別應各司其職,避免有相同的方法,如下範例:
class Animal: # 動物類別
def eat(self):
print("Animal eat method is called.")
class Bird:
def walk(self):
print("Bird walk method is called.")
class Duck(Animal, Bird):
pass
duck = Duck()
duck.eat()
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-inheritance.html )網站觀看更多精彩內容。
看更多
3 0 895 0
104學習

11/13 00:00

15 1

推薦給你

104學習

產品

11/10 11:42

【免費課程】五大課程助你強化履歷 學生與求職者都能快速加分
如果你想在求職中更快被企業看見,先把基礎技能補起來很關鍵。從AI、設計到電商都是職場上需要應用到的能力。AWS、Google、Canva、Amazon分別推出免費學習課程,零基礎也能上手,完成後還能拿官方證書或徽章,直接放進履歷提升可信度,幫你在求職、轉職或升遷中更具競爭力。
🟢104 × AWS AI 人才就緒計畫
免費打造AI即戰力!不限背景,完成課程並通過測驗即獲AWS官方證書,學習紀錄自動寫入104履歷,企業主動搜尋更快找到你。課程分「商業應用」(3.5小時)及「技術開發」(6小時),60.3%的AI工作不限科系,企業更重視跨域應用人才。
🔥FAQ (常見問答):
【Q : 有哪些證書可以拿?】
▶️生成式 AI 商業應用技能證書:
• 適合:行銷、企劃、管理職等非技術背景
• 課程內容:6 門課,約 3.5 小時
• 特色:懂得在工作中應用 AI 工具,強化工作效率
▶️生成式 AI 技術開發技能證書:
• 適合:工程師、開發者
• 課程內容:10 門課,約 6 小時
• 特色:強化程式整合、AI 模型操作與應用力
【Q2 : 如何拿證書?】
領AWS證書步驟→
1. AWS官網:
2. 隨意點擊一部課程影片,觀看2-3分鐘,隨後即會收到測驗通知
測驗完成後,即可獲得AWS官方證書
🟢Canva 免費證照速攻
快速掌握設計與AI工具!Canva Design School提供免費課程,完成後可考取官方證書,熟手可直接考試,證書可下載或分享至履歷,證明數位設計專業力。
🔥FAQ (常見問答):
【Q : 如何找到Canva官方的免費課程與證書考試?】
首先進入Canva Design School,在平台上,點擊「Get certified」,這裡提供的課程在結束後都可參加考試並獲得證書。
證照資訊:
▶️【點我免費做模擬測驗】
*即使沒有將課程上完,也可直接點擊「Earn a certificate」開始考試。對於已經熟悉Canva操作的使用者來說,若覺得課程內容簡單,想要節省時間,可直接選擇考試的方式獲得證書。
🟢Google 8堂免費AI課程
全面掌握最新AI技術!涵蓋生成式AI、大語言模型、BERT等,從初學到進階皆適用。完成課程可獲得完課徽章,展示你的AI新技能,為履歷增添亮點。
▶️完整內容請看
🟢Google Gemini AI 教師證書
全球首張教育工作者AI認證!任何人皆可報考,驗證生成式AI理解與教學應用能力。線上選擇題測驗,通過獲3年效期證書。教育類AI職缺需求暴漲94%,顯示 AI 技能在教育領域的重要性日益提升。
🔥FAQ (常見問答):
【Q : 取得認證後有什麼幫助?】
• 履歷加分,證明具備 AI 時代教學能力
• 有助轉職、升遷或申請國際計畫
• 在教育機構中被視為專業能力指標
• 符合市場趨勢:教育輔導類 AI 職務需求激增 94%
▶️證照資訊
▶️【點我免費做模擬測驗】
🟢CEPT-AMAZON 跨境電商營運課程
跨足國際市場零門檻!由IEAT與亞馬遜合作,15小時線上課程涵蓋開店、選品、物流到廣告全攻略。由亞馬遜官方講師授課,線上彈性學習,一年帳號不限次數,完成後可自費考取證書(600元/次),驗證跨境電商專業實力,通過考核即可獲得證書。
🔥FAQ (常見問答):
【Q : 學習方式是什麼?需要付費嗎?】
免費學習,全面提升亞馬遜營運與銷售能力,完成線上報名並審核後,即可開通線上課程帳號權限,使用期限為1年
▶️【零成本學習門檻 → 詳情請看】
看更多
0 0 857 1
你可能感興趣的教室