Java面向對象編程導論
面向對象編程簡介
JAVA是一門面向對象的編程語言。面向對象編程范式與面向過程編程范式同屬于命令式編程范式,與函數式編程范式相區別。在面向對象編程范式中,我們將我們要處理的系統的業務邏輯表現為對象之間的互相關聯。對象實體本身是一組數據和動作的封裝。封裝可以簡單的理解為一種打包,它使得外部可以使用某個單一對象或模塊提供的服務而不去理會具體的細節。在這個意義上我們發現,面向對象本身就是計算機科學抽象思維的一種體現。在面向對象編程范式所面對的世界中,一切皆是對象。
面向對象編程與面向過程編程
一般來說,支持面向對象編程的語言也是支持面向過程編程范式的,而函數式編程語言的特點也正在被糅合到現有的面向對象編程語言中。按照我的理解,編程就是使用符號語言來對現實世界中的事物進行建模。面向過程編程范式在對事物進行建模時更加靈活,但也容易造成代碼的冗余和系統復雜性過高。面向對象編程范式的語言則將原來在面向過程編程范式中常用的結構抽離出來,采用更加簡易的機制來表示。面向對象編程目前是應用領域的主流編程范式,因為它更有助于構建結構更清晰、更易于理解、擴展性更強的軟件系統。
面向對象編程與函數式編程
面向對象編程范式與函數式編程范式則有著較大的差異。在面向對象編程范式中,我們熱衷于將業務邏輯抽象成提供特定服務的對象,并且常常使用變量來表示復雜的變動中的關系,對象的動作本身多產生的影響往往不是來自于方法本身的返回值,而是方法本身的副作用。函數式編程范式則與此有較大的不同。在函數式編程范式中,采用具有恒定性的常量和變量是一種約定的習慣。相比較于命令式編程范式,使用函數式編程范式編寫的程序更加的簡潔,以及擁有更高層次的直觀,且很少有副作用。此外,一個很大的不同點在于函數式編程熱衷于采用遞歸,而面向對象編程更習慣于采用看上去效率更高的迭代機制。
面向對象編程與面向切面編程、面向接口編程
面向切面編程和面向接口編程都是面向對象編程的一種延伸。面向對象編程將事物表示為對象之間的關系,但是現實事物并不是一個個單獨的被聯系起來的實體,實體
只是在特定視角下的一種整體化的認知,面向對象編程并不足以完全表示現實世界復雜的邏輯。面向切面編程正是對于這樣一種情況的有效補充,它使得我們可以單獨定義對于多個不同實體之間的共通邏輯,而這些邏輯往往與不同實體本身的業務邏輯無關。面向接口編程則是在應用軟件開發領域對于面向對象編程的更深層次的抽象。接口本身并不是JAVA本身語法中的接口。面向接口編程是指將不同功能模塊的服務加以抽象,只保留對外的接口,減少不同系統之間的耦合,同時保證系統本身的可讀性、可理解性,提高可維護性和可用性。

浙公網安備 33010602011771號