提起Java,大家都知道它是一門典型的面向?qū)ο蟮木幊陶Z言。但是對于面向?qū)ο?,可能還有許多人并不清楚。那么面向?qū)ο笫鞘裁??有哪些特征呢?本文就來帶大家好好認(rèn)識一下面向?qū)ο?。面向?qū)ο笫且环N軟件的開發(fā)方法,它的特征歸納起來就是三點,即封裝、繼承和多態(tài)。下面是關(guān)于面向?qū)ο蟮纳钊虢榻B:
面向?qū)ο笫鞘裁矗?/p>
面向?qū)ο蟪绦蛟O(shè)計是種具有對象概念的程序編程典范,同時也是一種程序開發(fā)的抽象方針。它可能包含數(shù)據(jù)、屬性、代碼與方法。對象則指的是類的實例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性,對象里的程序可以訪問及經(jīng)常修改對象相關(guān)連的數(shù)據(jù)。在面向?qū)ο蟪绦蚓幊汤铮嬎銠C(jī)程序會被設(shè)計成彼此相關(guān)的對象。面向?qū)ο蟮膬?yōu)點是易維護(hù)、易復(fù)用、易擴(kuò)展。由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)。但是它的缺點也是很明顯的,像是性能比面向過程低。
面向?qū)ο笥心男┨卣鳎?/p>
1、封裝:找到變化并且把它封裝起來,你就可以在不影響其它部分的情況下修改或擴(kuò)展被封裝的變化部分,這是所有設(shè)計模式的基礎(chǔ),就是封裝變化,因此封裝的作用,就解決了程序的可擴(kuò)展性。
2、繼承:子類繼承父類,可以繼承父類的方法及屬性,實現(xiàn)了多態(tài)以及代碼的重用,因此也解決了系統(tǒng)的重用性和擴(kuò)展性,但是繼承破壞了封裝,因為他是對子類開放的,修改父類會導(dǎo)致所有子類的改變,因此繼承一定程度上又破壞了系統(tǒng)的可擴(kuò)展性,所以繼承需要慎用,只有明確的IS-A關(guān)系才能使用,同時繼承在在程序開發(fā)過程中重構(gòu)得到的,而不是程序設(shè)計之初就使用繼承,很多面向?qū)ο箝_發(fā)者濫用繼承,結(jié)果造成后期的代碼解決不了需求的變化了。因此優(yōu)先使用組合,而不是繼承,是面向?qū)ο箝_發(fā)中一個重要的經(jīng)驗。
3、多態(tài):接口的多種不同的實現(xiàn)方式即為多態(tài)。接口是對行為的抽象,剛才在封裝提到,找到變化部分并封裝起來,但是封裝起來后,怎么適應(yīng)接下來的變化?這正是接口的作用,接口的主要目的是為不相關(guān)的類提供通用的處理服務(wù),我們可以想象一下。比如鳥會飛,但是超人也會飛,通過飛這個接口,我們可以讓鳥和超人,都實現(xiàn)這個接口,這就實現(xiàn)了系統(tǒng)的可維護(hù)性,可擴(kuò)展性。
以上就是長沙牛耳教育java培訓(xùn)機(jī)構(gòu)的小編針對“Java新手入門教程: 面向?qū)ο蟮奶刭|(zhì)”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Java零基礎(chǔ)學(xué)習(xí)視頻
2020Java零基礎(chǔ)教程:http://www.bjpowernode.com/javavideo/110.html