工作小驛

          Ninja!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks

              4節(jié)課中我們初步的了解到了一些面向?qū)ο蟮母拍睿鸵恍┨匦浴@绶庋b。這節(jié)課我們來(lái)進(jìn)一步認(rèn)識(shí)一下,這種思想。對(duì)了,在這里我說(shuō)這是一種思想,是想問(wèn)題的方法。即使沒(méi)有javaC++smalltalk這樣的面向?qū)ο笳Z(yǔ)言也有這種思想。其實(shí)這種思想在上世紀(jì)60年代就已經(jīng)存在了。還有一個(gè)常見(jiàn)的誤區(qū),不光是初學(xué)者,就是有些干了幾年的程序員也是這樣,以為用java寫(xiě)東西就是面向?qū)ο螅@都是錯(cuò)誤的。

          那么面向?qū)ο蟮降资鞘裁礀|西呢?能夠明確的給出概念非常少,但是我們可以分析一下。它與面向過(guò)程的思想做一個(gè)比較,面向過(guò)程是指,我們考慮問(wèn)題時(shí),以一個(gè)具體的流程(事務(wù)過(guò)程)為單位,考慮它的實(shí)現(xiàn)過(guò)程;面向?qū)ο笫侵?/span>,我們考慮問(wèn)題時(shí),把任何東西看做是對(duì)象,以對(duì)象為單位,考慮它的屬性及方法。

          好比一個(gè)木匠在做一把凳子,如果他是面向過(guò)程的木匠,他會(huì)想到制作凳子的過(guò)程。“先做什么呢?凳子腿?凳子板?用什么工具呢?”。如果他是一個(gè)面向?qū)ο蟮哪窘常麜?huì)把所有的東西看做成對(duì)象,“凳子腿,凳子板兩個(gè)對(duì)象。凳子腿有屬性,長(zhǎng)方體的,長(zhǎng)度,寬度是多少厘米,有方法釘釘子。凳子板的屬性,正方形,邊長(zhǎng)是多少厘米等等問(wèn)題。”這樣的話,面向?qū)ο蟮哪窘硶?huì)依據(jù)這些條件。將一個(gè)凳子組裝在一起。最終目的是做成一個(gè)凳子,用什么思想方法去做,是值得研究的。

          通過(guò)剛才的例子,我們會(huì)有一種感覺(jué),面向?qū)ο蟮哪窘硶?huì)對(duì)事務(wù)量化的分析,用“數(shù)學(xué)”的方法處理問(wèn)題似的。好像他更具有進(jìn)步意義。面向?qū)ο蟮乃枷胍泊_實(shí)有著他的先進(jìn)之處,它把世界上的所有事務(wù)看做成為對(duì)象,這樣的話更貼近于現(xiàn)實(shí)世界,這樣的話使得邏輯清晰,誰(shuí)看報(bào)告的時(shí)候也喜歡看條理清晰的報(bào)告啊。這樣使得面向?qū)ο蟮能浖_(kāi)發(fā),成為上世紀(jì)90年代直到現(xiàn)在的主流開(kāi)發(fā)技術(shù)。傳統(tǒng)開(kāi)發(fā)方法存在問(wèn)題

          1.軟件重用性差
                重用性是指同一事物不經(jīng)修改或稍加修改就可多次重復(fù)使用的性質(zhì)。軟件重用性是軟件工程追求的目標(biāo)之一。誰(shuí)愿意來(lái)來(lái)回回的寫(xiě)一件事情呢。

          2.軟件可維護(hù)性差
                軟件工程強(qiáng)調(diào)軟件的可維護(hù)性,強(qiáng)調(diào)文檔資料的重要性,規(guī)定最終的軟件產(chǎn)品應(yīng)該由完整、一致的配置成分組成。在軟件開(kāi)發(fā)過(guò)程中,始終強(qiáng)調(diào)軟件的可讀性、可修 改性和可測(cè)試性是軟件的重要的質(zhì)量指標(biāo)。實(shí)踐證明,用傳統(tǒng)方法開(kāi)發(fā)出來(lái)的軟件,維護(hù)時(shí)其費(fèi)用和成本仍然很高,其原因是可修改性差,維護(hù)困難,導(dǎo)致可維護(hù)性差。

          3.開(kāi)發(fā)出的軟件不能滿足用戶需要
                用傳統(tǒng)的結(jié)構(gòu)化方法開(kāi)發(fā)大型軟件系統(tǒng)涉及各種不同領(lǐng)域的知識(shí),在開(kāi)發(fā)需求模糊或需求動(dòng)態(tài)變化的系統(tǒng)時(shí),所開(kāi)發(fā)出的軟件系統(tǒng)往往不能真正滿足用戶的需要。

          現(xiàn)在的面向?qū)ο蟮乃枷胍呀?jīng)擴(kuò)展到很多方面,如數(shù)據(jù)庫(kù)系統(tǒng)、交互式界面、應(yīng)用結(jié)構(gòu)、應(yīng)用平臺(tái)、分布式系統(tǒng)、網(wǎng)絡(luò)管理結(jié)構(gòu)、CAD技術(shù)、人工智能等領(lǐng)域。而且他指的是面向?qū)ο蠓治觯?/span>OOA),面向?qū)ο笤O(shè)計(jì)(OOD),面向?qū)ο缶幊蹋?/span>OOP),這一套過(guò)程了。

           

          下面我們來(lái)看一下,經(jīng)常用到的重要概念,也就是java語(yǔ)言的的OOP特性,這是對(duì)于OOP而言的,不含前面的OOAOOD的。因?yàn)槭浅鯇W(xué)嘛,還沒(méi)有學(xué)到怎么分析和設(shè)計(jì)呢。JavaOOP有三大特性:封裝、繼承、多態(tài)

          封裝的概念已經(jīng)在4節(jié)說(shuō)過(guò)了,我們講的是,它用權(quán)限修飾符private使得屬性不能被外界訪問(wèn),像是人的五臟六腑怎么能讓人隨意的碰呢?人的這個(gè)屬性也是要封裝的。如有再不明白,請(qǐng)?jiān)L問(wèn)我們的技術(shù)論壇

          說(shuō)一下容易理解的繼承:

          當(dāng)一個(gè)類(lèi)是另一個(gè)類(lèi)的特例時(shí),這兩個(gè)類(lèi)之間具有父子類(lèi)的關(guān)系。子類(lèi)繼承了父類(lèi)的方法和屬性,就是說(shuō)子類(lèi)可以重用父類(lèi)中的這部分代碼。比如:轎車(chē)是車(chē)的一個(gè)特例。轎車(chē)是車(chē)的子類(lèi)。就是說(shuō),轎車(chē)?yán)^承了車(chē)的一切特性。繼承用關(guān)鍵字extends表示。

          實(shí)踐:

          //這是基類(lèi)

          public class Che {

                         private int wheel = 4;

                         public int getWheel() {

                            return wheel;

                         }   }

                               public class Jiaoche extends Che {

                         private String pinpai = "桑塔納";

                         public String getPinpai() {

                            return pinpai;

                     }   }

                               public class Testche {

                         public static void main(String[] args) {

                            Jiaoche car = new Jiaoche();      

                            int wheels = car.getWheel(); //調(diào)用基類(lèi)的方法

                            String Pinpal = car.getPinpai();//調(diào)用本身的方法

                            System.out.println("車(chē)有 "+wheels+" 個(gè)輪子");

                            System.out.println("轎車(chē)的品牌是 "+Pinpal);

                     }   }

          上述例子源碼和附加練習(xí)源碼打包下載

          注意:java語(yǔ)言與C++不同只可以從一個(gè)父類(lèi)繼承哦(單繼承)。

          還有就是最難理解的多態(tài)了,我們下次課講面向?qū)ο蟮亩鄳B(tài)性。

          posted on 2007-07-28 10:41 王君 閱讀(159) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2SE
          主站蜘蛛池模板: 井冈山市| 济宁市| 孟连| 鞍山市| 教育| 田东县| 北辰区| 怀化市| 涪陵区| 南川市| 云龙县| 泽库县| 彭州市| 沂源县| 石门县| 图们市| 枞阳县| 鄂伦春自治旗| 天全县| 中山市| 湖南省| 巴林左旗| 沽源县| 会宁县| 许昌县| 长治市| 剑阁县| 沧州市| 临颍县| 元谋县| 河东区| 新泰市| 芦山县| 宾川县| 社会| 讷河市| 太和县| 黎川县| 浦城县| 延津县| 张家界市|