java里oop思想_(一)OOP思想详解
1.關(guān)于抽象的進(jìn)步。面向?qū)ο驩OP的設(shè)計(jì)思路其實(shí)是把“抽象”這種編程方法進(jìn)行了新的解釋說明,把具體的人或事務(wù)抽象成了“類”“對象”的形式。
面向?qū)ο蟮闹饕枷?#xff1a;
萬物即對象
程序是對象的組合
每個(gè)對象都有自己的空間,可以容納其他對象
每個(gè)對象都有自己的實(shí)例
同一類的所有對象都能接收相同的消息
2.對象的接口
通過類構(gòu)造對象,對象開放給使用者接口,此時(shí)使用者可以通過類的對象的接口給對象發(fā)出請求。
3.面向?qū)ο缶幊桃峁┙o兩個(gè)使用者:類的創(chuàng)建者和使用者。類的創(chuàng)建者的職責(zé)是從頭創(chuàng)建一個(gè)類,提供給使用者接口就好,而類的使用者(書中稱之為客戶程序員)直接拿來接口使用,而不需要了解這個(gè)類具體是什么構(gòu)造。同時(shí)類的創(chuàng)建者也不用有顧慮怕類被破壞或者修改。
4.方案的重復(fù)使用
我們知道在面向?qū)ο笾幸粋€(gè)類的對象可以置入另外一個(gè)類中,這叫做“創(chuàng)建一個(gè)成員對象”,在新建類的時(shí)候,首先可以考慮把不同類的對象組織起來使用,可以有效減少代碼的復(fù)雜度,減少不必要的繼承。
5.繼承的進(jìn)一步解釋
在以前的認(rèn)識中,繼承只是用來創(chuàng)建新類,和舊的類區(qū)別開來,書中對創(chuàng)建繼承的必要性進(jìn)行了一定的探討:
為什么要使用繼承:要?jiǎng)?chuàng)建新的類和已有類功能相似,但是有一定的新功能,此時(shí)使用繼承,把舊的類所有的成員繼承到新類中,復(fù)制了舊類的接口
如何區(qū)分衍生類和舊類:a.為衍生的類增加新的函數(shù),提供新的功能;b.改善基礎(chǔ)類的現(xiàn)有函數(shù)
6.關(guān)于類型的上溯
這個(gè)概念這次深刻的理解了。
舉例:
此時(shí)有一個(gè)這樣的類的構(gòu)造:
同時(shí)有這樣的一個(gè)函數(shù):
void doStuff(Shape s){
s.draw();
...
...
}
此時(shí)如果定義了新的形狀,則只需要指出該形狀的類衍生于Shape類即可調(diào)用Shape類的函數(shù):
Circle c = new Circle();
Triangle t = new Triangle();
Square s = new Square();
doStuff(c);
doStuff(t);
doStuff(s);
這里把衍生的類當(dāng)成了它的基礎(chǔ)類型處理,這種方法就叫做Upcasting,只需要指出某個(gè)類所屬的基本類型,即可讓它執(zhí)行基礎(chǔ)類的具體功能。
總結(jié)
以上是生活随笔為你收集整理的java里oop思想_(一)OOP思想详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: crc算法java_c语言的crc16算
- 下一篇: 8种企业数据采集工具分析