Object Oriented Programming - Java備忘筆記 - GitBook
文章推薦指數: 80 %
物件導向程式設計Object Oriented Programming (OOP) · 抽象化? Abstraction? · 好處? Benefits?
JJJava備忘筆記Search…JJJava備忘筆記IntroductionJava特性如何開始編譯並執行console編譯並執行Eclipse作者介紹BasicObject-OrientedBasicJavaProgrammingObjectOrientedProgramming封裝繼承多型抽象介面PoweredByGitBookObjectOrientedProgramming介紹物件導向程式設計的核心概念,及三大支柱。
歷史:物件導向程式設計的雛形,早在1960年的Simula語言中即可發現,當時的程式設計領域正面臨著一種危機:在軟硬體環境逐漸複雜的情況下,軟體如何得到良好的維護?物件導向程式設計在某種程度上通過強調可重複性解決了這一問題。
20世紀70年代的Smalltalk語言在物件導向方面堪稱經典——以至於30年後的今天依然將這一語言視為物件導向語言的基礎。
(copyfromWiki)從高階語言的設計發展來看,大概可分為四個部分:1.非結構化程式設計(UnstructuredProgramming)非結構化程式設計把所有的敘述寫在主程式(main)中去執行,資料都設為全域(global),可想而知規模稍為大一點的程式會讓程式碼變得很凌亂,而且不易維護,同樣的動作就複製同樣的程式碼去達成目標。
2.結構化程式設計(StructuredProgramming)結構化程式設計引入了函數(function)及回傳(return)的概念,把一些程式碼敘述包成函式讓主程式呼叫使用。
一樣的動作就呼叫一樣的函數。
3.模組化程式設計(ModularProgramming)隨著程式的規模越來越大,結構化程式設計會有越來越多的函數,產了管理不易的問題。
模組化的概念就是把功能相似的函數包成一個模組,主程式跟各模組要求資料、函數來達成所需要的功能。
4.物件導向程式設計(Object-OrientedProgramming)同樣的,更多的模組只會讓程式變得更複雜。
而且資料在模組中是全域的,無法完整的描述現實世界的情況。
物件導向程式設計以『資料』為主體構成物件,物件有其『方法』可以與別的物件進行運作。
物件導向程式設計ObjectOrientedProgramming(OOP)把真實世界的事物抽象化為物件。
抽象化?Abstraction?舉個例子,試著描述何謂電腦,底下是五個人的回答:A:一種計算設備。
B:由滑鼠、鍵盤、螢幕、主機構成的裝置。
C:可以提供服務、解決問題的物品。
D:一種可以讓你熬夜爆肝的惡魔玩具。
E:可以快速執行指令的東西(?。
不管你的答案是什麼,你在腦海裡試著描述的這個動作就叫『抽象化(Abstraction)』。
一般來說抽象化的越詳細,越能表述你想要描述的物體,但實務上還是要依現實需求去思考抽象化的程度。
好處?Benefits?1.程式的可重複利用性(Reusability)程式設計師可以重複的使用母類別(superclass)的程式。
2.軟體原型(SoftwarePrototyping)類別的發展可以視為一顆軟體IC,使系統的開發更簡單且有效率。
三大支柱:1.封裝(Encapsulation)2.繼承(Inheritance)3.多型(Polymorphism)接下來章節會討論OOP三大支柱。
要知道的是,物件導向只是一種『設計概念(designconcept)』,而不是一種程式語法,只是Java是純物件導向,所以要學Java一定要弄清楚物件導向。
設計類別要從『資料(data)』的觀點出發,而不是從方法的觀點。
以資料為主體產生類別,再去設計其方法(method)。
設計重點要在於物件之間的互動(interactionamongobjects),而非流程控制(controlflow)。
Previous標準輸入ScannerNext封裝Lastmodified1yragoCopylinkOutline歷史:從高階語言的設計發展來看,大概可分為四個部分:1.非結構化程式設計(UnstructuredProgramming)2.結構化程式設計(StructuredProgramming)3.模組化程式設計(ModularProgramming)4.物件導向程式設計(Object-OrientedProgramming)物件導向程式設計ObjectOrientedProgramming(OOP)抽象化?Abstraction?好處?Benefits?三大支柱:
延伸文章資訊
- 1Python 101 基礎教學(10) - 物件導向Object-Oriented ...
物件導向Object-Oriented Programming(OOP) 是以物件的形式去描述你資料應有的行為。就像我們在現實世界中定義貓、狗、人、車等等一樣,都有自己的 ...
- 2Object Oriented Programming - Java備忘筆記 - GitBook
物件導向程式設計Object Oriented Programming (OOP) · 抽象化? Abstraction? · 好處? Benefits?
- 3給OOP初學者的建議:先搞懂「資料跟行為在一起」就好
作法二:自訂函數(不OOP、資料跟行為沒混在一起) ... 至於很多OOP教學會提到的「繼承」、「多型」、「介面」、「抽象類別」等等名詞,一時搞不懂 ...
- 4[Rust] 程式設計教學:物件導向(Object-Oriented Programming)
物件導向程式設計(OOP, object-oriented programming) 是一種程式設計的模式(paradigm)。由於物件導向是近代軟體開發的主流方法,許多程式語言從語法機制可直接...
- 5Web開發學習筆記16 — OOP(Object Oriented Programming)
What Are JavaScript Constructor Functions? Day 10: ES6篇- Class(類別) · JavaScript | ES6 中最容易誤會的語法糖C...