<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-159  評論-114  文章-7  trackbacks-0

    面向過程是以時間為順序的,組成單位是函數。

    面向對象是一套思想。它來源于人類對于客觀世界的認識的一般規律。

    1什么是對象?

    什么都是對象!客觀存在的就是對象。

    對一個事物來說,一是它有什么?(屬性)二是它能做什么?(方法)



    2為什么面向對象

    它人類看待客觀事物的一般規律。

    人看到事物,首先會想到它能做什么,功能,存在的價值。并不太關心它的屬性。

    ========================================

    要注意聯系實際來搞懂面向對象,比如面試這件事,實際上,公司是想測試你是否能提供 公司需要的方法,公司并不關心你實現的細節。錄用后,就是開始去調用你的方法。如果不能很好的實現方法,就可能被辭退。

    那么那些筆試、測試就是想看你是否有知識,知識就是屬性,記住屬性與方法之間是有聯系的,也就是沒有公司所需的知識,可以斷定這個人肯定不會有公司需要的方法。

    一個事物的方法的實現細節是對外界屏蔽的。

    那么,之前提交的簡歷是什么呢,那就是一個方法列表阿,API。比如年齡22,表明你的方法可以很好的被調用;未婚,告訴別人,你可以加班,放心用。

    項目1,2,3,每個項目后面一定要寫上你在項目中用到什么語言,否則HR的人是不知道你想告訴他們什么,他們只關心公司想要一個有JSP開發經驗,或者什么什么技術有經驗的人。您敘述一大堆項目的事情,沒有任何意義。所以簡歷不要瞎寫。

    面試是什么,就是想真正調用一下你的方法,測試一下。

    =======================================

    那么社會的運轉就是各個對象的方法的相互調用。

    方法列表公開,方法的實現細節屏蔽。

    屬性,可見和不可見

    一個方法的實現細節誰知道呢?只有這個對象的生成者。



    那么人看待客觀世界的認識,就是通過類。人類認識的是類。

    類是一系列對象的抽象,對象的模版。

    一類事物,屬性、方法。這類對象也肯定有這些屬性和方法。



    為什么面向對象的第二點,就是使得開發的系統各思其職,各盡所能。也就是低耦合,高內聚。

    為什么,電腦中的部件可以很容易的更換成為其他廠商的,就是因為主板與具體部件的連接是松散的;那為什么,可以很容易的換到其他廠商的呢,是因為各個廠商遵循著標準接口。

    比如硬盤的use(電源接口,數據接口),每個廠商都必須實現,而且硬盤是一個類的概念,有屬性,比如尺寸。

    各個廠商不能在別處下功夫,只能對硬盤內部進行調整,提高性能,才會免予被替換。

    高內聚是指完成功能的最小化。

    低耦合表現在提高了對象的復用性,比如中間件。



    最后總結一下,面向過程是先有算法,后有數據結構。由若干個過程相互調用完成。

    面向對象,則是先有數據結構,后有算法,以對象為中心,開發一系列類,拿到特定對象,通過對象之間通信,對象設計要簡單。

    類(共性)--〉對象(類允許對象在滿足共性的同時,存在個性)

    一個類,則是一個新的數據類型。



    實例變量與局部變量命名沖突,則使用局部變量,除非使用this.來指定某個屬性。

    調用構造器只是生成對象步驟的最后一步,不是構造對象本身。

    方法中使用了this,this表示當前對象,當前對象就是誰調用該方法,誰就是當前對象。

    class TestClass{
    String name;
    public void printAll(String name)
    {
       this.name = name;
    }

    }

    上面必須添加上this.來引用實例變量name。因為在局部變量和實例變量沖突時,使用局部變量。





    finalize()不是析構方法,因為不能存在真正的釋放空間操作。



    方法參數,簡單類型傳值,對象類型傳引用(一個實際存儲[堆中]的首地址)。

    假如方法中,引用賦予一個新的對象,那么方法執行完以后,該引用和實際地址消失。傳入引用所指向的對象屬性不變。



    Overloading,修飾符和返回值可以不同,但參數列表(參數類型個數或者排列順序)一定要不同。

    Overloading,是編譯時多態。那么它要看編譯時類型。

    Overloading,也存在于父與子的關系當中。父有方法,子類可以有同名方法,只有參數列表不同才是重載。

    構造器(構造方法可以重載),通過this();可以調用本類無參構造方法。
    在其他構造器調用其它構造器,那么需要this關鍵字,并且必須放置于第一行。

    如果一個類不寫任何構造函數,系統會默認添加無參空構造方法。不要依賴系統默認行為!自己最好寫上。javap查看實際代碼。


    對于簡單類型,如果調用方法傳入參數的類型不存在,那么就采用向上匹配原則進行查找。

    m(byte)不存在,就用m(short)。(實際上long是int的父類,int是short的父類)



    封裝

    屬性盡可能私有。

    方法盡可能公開。

    private只有類內部本身能訪問。

    default只有同包能訪問。

    protected只有存在繼承關系,才能訪問。



    posted on 2005-11-28 23:43 北國狼人的BloG 閱讀(507) 評論(2)  編輯  收藏 所屬分類: 達內學習總結

    評論:
    # re: 達內第十一天,Core Java IV 2005-11-30 00:04 | 非魚
    高內聚:模塊內部依賴、關聯高。

    低耦合:模塊之間的關聯、依賴盡可能小并且單一。

    在封裝中,方法也是盡可能不公開的,package和protected較常見。  回復  更多評論
      
    # re: 達內第十一天,Core Java IV [未登錄] 2008-08-22 11:29 | 理由
    達內是什么公司?軟件培訓嗎?只聽說了北大青鳥。  回復  更多評論
      
    主站蜘蛛池模板: 亚洲免费在线观看| 国产精品深夜福利免费观看| 亚洲精品蜜桃久久久久久| 一级午夜a毛片免费视频| 日产国产精品亚洲系列| 黄色毛片免费网站| 国产福利免费在线观看| 亚洲AV无码一区二区大桥未久| 免费黄网在线观看| 国产精品亚洲AV三区| 亚洲国产一区二区三区| 一级人做人a爰免费视频| 国产亚洲精品岁国产微拍精品| 免费观看成人久久网免费观看| 亚洲91av视频| 91免费精品国自产拍在线不卡| 亚洲专区一路线二| 在线免费观看污网站| 国产亚洲人成在线影院| a级亚洲片精品久久久久久久| 久久国产精品国产自线拍免费| 亚洲AV色香蕉一区二区| 台湾一级毛片永久免费| 国产亚洲人成在线影院| 亚洲国产精品无码久久久秋霞2| 免费A级毛片无码A∨中文字幕下载| 亚洲欧洲精品视频在线观看| 亚洲AV无码久久寂寞少妇| 91短视频在线免费观看| 亚洲精品宾馆在线精品酒店| 国产亚洲精品线观看动态图| 无码人妻一区二区三区免费看| 33333在线亚洲| 亚洲人成色7777在线观看| 成人免费黄色网址| 亚洲国产免费综合| 亚洲精品在线免费观看视频| 免费h黄肉动漫在线观看| 免费国产黄网站在线观看视频| 在线视频亚洲一区| 麻豆亚洲av熟女国产一区二|