《面向对象是怎样工作的》读书笔记
本文為《面向?qū)ο笫窃鯓庸ぷ鞯摹返淖x書筆記
目錄
- 導(dǎo)圖
- 第3章 編程語言的歷史
- 第4章 OOP的三大要素
- 第5章 OOP運(yùn)行時的機(jī)制
- 第6章 兩種可重用技術(shù):可重用構(gòu)建群和設(shè)計(jì)模式
- 第9章 支持業(yè)務(wù)分析和需求定義的建模
- 第10章 面向?qū)ο笤O(shè)計(jì)
- 第11章 迭代式開發(fā)流程
導(dǎo)圖
面向?qū)ο缶哂袃蓚€方面,下游工程的“編程技術(shù)”和上游工程的“通用的歸納整理法”
第3章 編程語言的歷史
二進(jìn)制的機(jī)器語言
--> 人類容易理解的符號:匯編語言
--> 人類更容易理解的“高級”形式:高級語言, eg:FORTRAN(適合于做科學(xué)計(jì)算)
--> 簡單易懂的結(jié)構(gòu)(循序、選擇、重復(fù)):結(jié)構(gòu)化編程, eg:Pascal、C語言
--> 可維護(hù)性(全局變量)和可重用性:面向?qū)ο缶幊?OOP), eg:JAVA, Python
第4章 OOP的三大要素
類結(jié)構(gòu)將緊密關(guān)聯(lián)的子程序(函數(shù))和全局變量匯總在一起,創(chuàng)建大粒度的軟件構(gòu)件,多態(tài)和繼承能夠?qū)⒐米映绦驘o法很好處理的重復(fù)代碼進(jìn)行整合,徹底消除代碼的冗余。
1.類
類的功能:匯總、隱藏和“創(chuàng)建很多個”
- "匯總"子程序和變量
- “隱藏”只在類內(nèi)部使用的變量和子程序
- 從一個類“創(chuàng)建很多個”實(shí)例
匯總
OOP中將由類匯總的子程序稱為方法,將全局變量稱為實(shí)例變量
優(yōu)點(diǎn):
- 構(gòu)件的數(shù)量會減少
- 方法的命名變得輕松
- 方法變得容易查找
隱藏
能對其他類隱藏類中定義的變量和方法(private)
創(chuàng)建很多個
一旦定義了類,在運(yùn)行時就可以創(chuàng)建很多個實(shí)例。
2.繼承
繼承是將類定義的共同部分匯總到另一個類中,并去除重復(fù)代碼的結(jié)構(gòu)。在OOP中,這種共用類稱為超類,利用超類的類稱為子類。
3.多態(tài)
多態(tài)是統(tǒng)一調(diào)用子程序端的邏輯的結(jié)構(gòu),即創(chuàng)建公用主程序的結(jié)構(gòu)。
4.更先進(jìn)的OOP結(jié)構(gòu)
包
進(jìn)行匯總的容器
異常
采用與返回值不同的形式,從方法返回特殊錯誤的結(jié)構(gòu)。
垃圾回收
刪除內(nèi)存中不再需要的實(shí)例
第5章 OOP運(yùn)行時的機(jī)制
1.虛擬機(jī)
解釋中間代碼并將其轉(zhuǎn)化為CPU能夠直接運(yùn)行的機(jī)器語言的結(jié)構(gòu)
2.線程
線程:程序運(yùn)行的單位
進(jìn)程:表示的單位比線程大,一個進(jìn)程可以包含多個線程
多個線程同時并發(fā)進(jìn)行:CPU交替執(zhí)行多個線程的處理,但處理速度快,在使用者眼中像同時執(zhí)行多個作業(yè)一樣(單CPU)
3.內(nèi)存的使用方法
靜態(tài)區(qū)、堆區(qū)、棧區(qū)
1.靜態(tài)區(qū)
從程序開始時產(chǎn)生,在程序結(jié)束前一直存在。
2.堆區(qū)
程序運(yùn)行時動態(tài)分配的內(nèi)存區(qū)域,供多個線程使用。
3.棧區(qū)
用于線程的控制的內(nèi)存區(qū)域,每個線程準(zhǔn)備一個。
| 用法 | 在應(yīng)用程序開始運(yùn)行時分配 | 開始時分配一定的區(qū)域,之后會根據(jù)需要再為應(yīng)用程序分配 | 后入先出方式 |
| 存儲的信息 | 全局變量、運(yùn)行代碼 | 任意(取決于應(yīng)用程序) | 調(diào)用的子程序的參數(shù)、局部變量和返回位置 |
| 分配單位 | 為整個應(yīng)用程序分配一個 | 為一個系統(tǒng)或應(yīng)用程序分配一個 | 為每個線程分配一個 |
4.變量的存儲
變量中存儲的并不是實(shí)例本身,而是實(shí)例的指針。當(dāng)將存儲實(shí)例的變量賦給其他變量時,只是復(fù)制指針,堆區(qū)中的實(shí)例本身并不會發(fā)生變化。
5.垃圾回收
如何判斷實(shí)例不被需要:發(fā)現(xiàn)孤立的實(shí)例
第6章 兩種可重用技術(shù):可重用構(gòu)建群和設(shè)計(jì)模式
第9章 支持業(yè)務(wù)分析和需求定義的建模
建模的目的:
- 業(yè)務(wù)分析:整理現(xiàn)實(shí)世界的工作的推進(jìn)方法(why使用計(jì)算機(jī))
- 需求定義:確定交給計(jì)算機(jī)的作業(yè)范圍(what)
- 設(shè)計(jì):確定軟件的編寫方法(how)
第10章 面向?qū)ο笤O(shè)計(jì)
即上一章講述的設(shè)計(jì)模式
設(shè)計(jì)的目標(biāo)
- 去除重復(fù)
- 提高構(gòu)建的獨(dú)立性:起一個能用一句話表示的名稱、創(chuàng)建許多秘密、創(chuàng)建的小一點(diǎn)
- 避免依賴關(guān)系發(fā)生循環(huán)
第11章 迭代式開發(fā)流程
開發(fā)流程的兩種類型:瀑布式開發(fā)流程和迭代式開發(fā)流程
1.瀑布式開發(fā)流程
前提:軟件的修改會產(chǎn)生很大的成本,編寫文檔的成本要比編寫軟件低得多。
2.迭代式開發(fā)流程
第13章 函數(shù)式語言
有時間了解一下Haskell或者Scala
?長按點(diǎn)贊,等你來干總結(jié)
以上是生活随笔為你收集整理的《面向对象是怎样工作的》读书笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单晶XRD培养技术(二)
- 下一篇: PLC是一种专门为在工业环境下应用而设计