蘇州Java軟件開發(fā)培訓(xùn)機構(gòu)
Java語言是純粹的面對對象設(shè)計語言,支持面對對象三大基本特征:繼承、封裝和多態(tài),以對象為中心,整個java程序是由一個個的類組成的,所以,類是java程序中**小的單位。面對對象的方式由面對對象的分析、設(shè)計和編程組成(OOA\OOD\OOP),其中分析和設(shè)計采用UML(統(tǒng)一建模語言)來描述和記錄,常用UML圖形包括例圖、類圖、組件圖、部署圖、順序圖、活動圖以及狀態(tài)機圖。
目前軟件開發(fā)主要用到結(jié)構(gòu)化開發(fā)方法(面對功能或者說面對過程)以及面對對象開發(fā)方法。結(jié)構(gòu)化開發(fā)比如C、Basic、Pascal等語言,因面對對象具有出色的重用性、拓展性、維護性,于是催生了大量的面對對象語言例如C 、Java、C#和Ruby等。
結(jié)構(gòu)化設(shè)計方法講求自上而下、逐步求精、模塊化等原則,按照功能來分析系統(tǒng)需求。結(jié)構(gòu)化開發(fā)中**小的程序單位為函數(shù),每一個函數(shù)負(fù)責(zé)一個功能,用以接收一些輸入數(shù)據(jù),函數(shù)對輸入數(shù)據(jù)進行處理后輸出一些數(shù)據(jù),所以整個系統(tǒng)由一個個函數(shù)組成,其中作為程序入口的函數(shù)稱為主函數(shù),由主函數(shù)依次調(diào)用普通函數(shù)從而完成一整個系統(tǒng)的功能,每一個函數(shù)都是可輸入輸出的子系統(tǒng),輸入數(shù)據(jù)包括函數(shù)形參、全局變量和常量等,輸出數(shù)據(jù)包括函數(shù)返回值和傳出參數(shù)等。以此,可看出結(jié)構(gòu)化開發(fā)方法具有兩個局限性,其一,設(shè)計不夠直觀,需要開發(fā)者將客觀世界分解成一個個功能,不符合人的習(xí)慣性思維;其二,可拓展性不強,如果用戶需求或者實現(xiàn)方式發(fā)生改變,因結(jié)構(gòu)化開發(fā)方法是自上而下的方式,所以需要從上至下重新開發(fā)導(dǎo)致維護成本高。
面對對象則是一種更優(yōu)秀的開發(fā)設(shè)計方法,它的基本思想是使用類、對象、繼承、封裝、消息等基本概念進行程序開發(fā)設(shè)計。所以綜上所述,面對對象和面對過程的區(qū)別在于一個博大,一個精深,面對對象相對簡單,將構(gòu)成問題事物分解成對象,建立對象(類)的目的不是為了細化完成每一個步驟,而是為了敘述某個事物在整個問題中的行為;而面向過程即結(jié)構(gòu)化設(shè)計是分析出解決問題的步驟,**依次調(diào)用一個個函數(shù)(相當(dāng)于方法)把這些步驟一步一步實現(xiàn)。其實不管是面對對象還是面對過程,都體現(xiàn)了一種軟件重用的思想,只不過面對對象重用的是類,一種將數(shù)據(jù)和處理數(shù)據(jù)的過程及函數(shù)封裝在一起的實體,面對對象一個很大的好處就是數(shù)據(jù)和方法的封裝,使得面對對象的三大特性得到發(fā)揮。**后說一句就是任何程序設(shè)計方法都可以由順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)三大基本結(jié)構(gòu)組合而成。
下面細說面對對象的三大基本特征:繼承、封裝和多態(tài)。其中封裝指的是將對象的實現(xiàn)細節(jié)隱藏起來,然后**一些公用方法來暴露該對象的功能;繼承是面對對象實現(xiàn)軟件復(fù)用的重要手段,當(dāng)子類繼承父類后,直接獲得父類的屬性和方法;多態(tài)指的是子類對象可以直接賦給父類變量,但運行時依然表現(xiàn)出子類的行為特征,這意味著同一個類型的對象執(zhí)行同一個方法時,可能表現(xiàn)出多種行為特征。
面對對象還支持以下功能:
*對象是面對對象中**基本的概念,它的基本特征有:**標(biāo)示性、分類性、多態(tài)性、封裝性、模塊獨立性好。
*類是具有共同屬性、共同方法的一類事物,類是對象的抽象,對象是類的實例。類的封裝性提高了類的內(nèi)聚性,降低對象之間的耦合性。
*對象間這種相互的合作需要一種機制協(xié)助進行,這種機制稱為“消息”,消息是實例與實例之間相互通信的機制。
*在面對對象方法中,類之間共享屬性和操作的機制稱為繼承。繼承具有傳遞性。繼承可分為單繼承和多繼承,因多繼承可能引起繼承結(jié)構(gòu)的混亂,所以Java不支持多繼承。
在編程語言領(lǐng)域,還有一個“基于對象”的概念,“基于對象”不能利用現(xiàn)有對象模板產(chǎn)生新對象,即它不具備“繼承”的特性。判斷語言是否面對對象,可以根據(jù)它們是否具有“繼承”和“多態(tài)”這兩個特性。
更多課程推薦: