APP應用事業群 - 資深網頁前端開發工程師|三竹資訊股份有限公司

台北市中山區 3年以上 大學 其它軟體及網路相關業
我要應徵
學歷: 科系不拘,大學、碩士、博士
需加強技能-企業要求 點擊標籤,查看學習內容
OOPUMLGitAJAXHTMLJavaScriptjQueryCSSNode.jsAngularJS軟體程式設計DHTML
需加強技能-相關
SOA程式開發分條程式撰寫TDD跨瀏覽器PHP軟體工程ES6BootstrapAPI
符合度
?

履歷符合度:登入計算

適合度
?

性格適合度:登入計算

OOP
OOP(Object-oriented programming, OOP)物件導向程式設計,指一種程式設計典範,同時也是一種程式開發的方法論。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性。 物件導向程式設計的雛形,早在1960年的Simula語言中即可發現,當時的程式設計領域正面臨著一種危機:在軟硬體環境逐漸複雜的情況下,軟體如何得到良好的維護?物件導向程式設計在某種程度上透過強調可重複性解決了這一問題。20世紀70年代的Smalltalk語言在物件導向方面堪稱經典——以至於30年後的今天依然將這一語言視為物件導向語言的基礎。 物件導向程式設計可以被視作一種在程式中包含各種獨立而又互相呼叫的單位和物件的思想,這與傳統的思想剛好相反:傳統的程式設計主張將程式看作一系列函式的集合,或者直接就是一系列對電腦下達的指令。物件導向程式設計中的每一個物件都應該能夠接受資料、處理資料並將資料傳達給其它物件,因此它們都可以被看作一個小型的「機器」,或者說是負有責任的角色。 目前已經被證實的是,物件導向程式設計推廣了程式的靈活性和可維護性,並且在大型專案設計中廣為應用。此外,支援者聲稱物件導向程式設計要比以往的做法更加便於學習,因為它能夠讓人們更簡單地設計並維護程式,使得程式更加便於分析、設計、理解。反對者在某些領域對此予以否認。
Hi~ 分享你的學習心得來幫助後輩或向前輩提問吧!
我要分享
我要提問

動態

全部
影片
文章
Mike OOP

Learn Code With Mike品牌創辦人

10/19 21:53

淺談Python類別(Class)

Q:什麼是類別(Class)?
簡單來說,就是物件(Object)的藍圖(blueprint)。就像要生產一部汽車時,都會有設計圖,藉此可以知道此類汽車會有哪些特性及功能,類別(Class)就類似設計圖,會定義未來產生物件(Object)時所擁有的屬性(Attribute)及方法(Method)。而定義類別的語法如下:
class classname:
  statement
首先會有class關鍵字,接著自定類別名稱,最後加上冒號。類別名稱的命名原則習慣上使用Pascal命名法,也就是每個單字字首大寫,不得使用空白或底線分隔單字,如下範例:
class MyCars:
Q:什麼是物件(Object)?
就是透過類別(Class)實際建立的實體,就像實際生產出來的汽車(例如:Mazda)。類別(Class)與物件(Object)的關係就像汽車設計圖與汽車實體。而建立物件(Object)的語法如下:
object_name = classname()
範例:
mazda = Cars()
Q:什麼是屬性(Attribute)?
負責存放物件(Object)的資料。設定物件(Object)的屬性值語法如下:
object_name.attribute_name = value
範例:
mazda = Cars() # 建立Cars類別的物件
mazda.color = "blue" #顏色屬性
建立物件(Object)後,才可進行屬性值(Attribute)的設定。會建議使用建構式(Constructor)來進行屬性值(Attribute)的設定。而存取物件的屬性值則透過以下語法:
object_name.attribute_name
範例:
print(mazda.color) # 執行結果:blue
Q:什麼是建構式(Constructor)?
於建立物件(Object)的同時,會自動執行的方法(Method)。所以通常我們會在建構式(Constructor)中初始化物件(Object)的屬性值(Attribute)。至少要有一個self參數,之後利用逗號區隔其他屬性,語法如下:
def __init__(self, color, seat):
  self.color = color # 顏色屬性
  self.seat = seat # 座位屬性
而這個self是什麼意思呢?它代表了實體物件的參考,也就是目前的物件(Object)。這個self就是告訴類別(Class)目前是在設定哪一個物件的屬性(Attribute)。所以範例中的意思就是此物件的color屬性等於傳入的color屬性值,此物件的seat屬性等於傳入的seat屬性值,而傳入屬性值的方式就是在建立物件的時候,如下範例:
class Cars:
def __init__(self, color, seat):
self.color = color # 顏色屬性
self.seat = seat # 座位屬性
mazda = Cars("blue", 4)
範例中於建立mazda物件(Object)的同時,生成其屬性並且初始化屬性值(color和seat)。
Q:什麼是方法(Method)?
可以想像是物件(Object)的行為。定義方法(Method)和函式(Function)的語法很像,都是def關鍵字開頭,接著自訂名稱,但是方法(Method)和建構式(Constructor)一樣至少要有一個self參數,語法如下:
def method_name(self):
  statement
範例:
class Cars:
def __init__(self, color, seat):
self.color = color # 顏色屬性
self.seat = seat # 座位屬性
# 方法(Method)
def drive(self):
print(f"My car is {self.color} and has {self.seat} seats.")
mazda = Cars("blue", 4)
mazda.drive() #執行結果:My car is blue and has 4 seats.
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-class.html )網站觀看更多精彩內容。
  • OOP
  • Python
拍手 0 留言 0 觀看 0 收藏 0
工作機會

商務平台後端工程師

凡谷興業有限公司

台中市西屯區 經歷不拘 大學

月薪 32,000~60,000元

軟體設計工程師(高雄)

光子網絡科技有限公司

高雄市前鎮區 3年以上 大學

月薪 33,000~100,000元
我要應徵