<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 連載:面向對象葵花寶典:思想、技巧與實踐(7) - “對象”新解 有了“類”的清晰定義后,“對象”就比較容易理解了。 **對象就是一個具體的類,一個真實存在的類。** 前面我們提到面向對象是對現實世界的模擬,那么對象就是現實世界中存在的“物體”。 ? 例如,“人”是一個類,我就是一個“人”的對象,你也是“人”的對象,奧巴馬也是“人”的對象。。。。。。 又比如:你去國美買冰箱,但國美肯定沒有一個單獨叫做“冰箱”的東西賣給你,而是具體的某臺海爾XX型號的冰箱、西門子XX型號的冰箱等。這里的“冰箱”就是一個類,而具體的“某臺海爾XX型號冰箱”、“某臺西門子XX型號冰箱”就是一個具體的對象。 ? 但是,我們要繼續深究一下:有了類,為什么還會有對象?“類”和“對象”各自的作用是什么? ? 我們知道,在人類出現以前,世界上就有各種各樣的物體了,有恐龍、老虎、鱷魚、松樹、青草、石頭、空氣。。。。。等等,也就是說,真實存在的是對象,而“類”,是有了人類文明后,根據觀察分析,加以歸納總結而的出來的。 ? 在軟件世界也是這樣的,真正存在于軟件運行過程中的是“對象”,而不是“類”,“類”只是在程序編寫中由程序員分析歸納出來的。這也是面向對象之所以叫做“面向對象”而不是“面向類”的一個原因吧。 ? 雖然我們前面定義對象為“一個具體的類”,但這是否意味著必須是先有類后有對象呢? 要回答這個問題,我們首先要澄清幾個概念:現實對象、現實類、軟件對象、軟件類。 ? 現實對象:你能看到的物體都可以稱為現實對象; 現實類:對現實對象的歸納總結; 軟件對象:軟件實際運行過程中存在的對象; 軟件類:軟件設計過程中歸納總結出來的類; ? 定義看起來很簡單,但它們的區別和聯系是什么呢? 如下圖示清晰的描述了它們之間的關系: ?![](https://box.kancloud.cn/2016-01-20_569f5cc9438b1.jpg) ? 也就是說,首先是存在現實對象,然后人們根據自己的觀察角度和要求將現實對象抽象成現實類,然后軟件設計人員基于現實類模擬出軟件類,最后在程序中將軟件類實例化成軟件對象,最終的程序就是軟件對象的活動和交互。 ? 那這樣是否意味著只有你能夠看見、能夠感知的對象才能抽象為類呢? 對于現實類和現實對象來說,可以說確實是這樣的;但對于軟件類和軟件對象并不完全是這樣的。 有一句名言叫做“電影來源于生活,但高于生活”,用在面向對象領域中就是“軟件類來源于現實類,但高于現實類”,為什么這么說呢? ? 首先,現實類在軟件類中必須有對應,但并不是完全一?一對應的,有的時候需要將現實類拆成幾個軟件類。 例如:比如說ATM機是現實世界真實存在的類,但在做軟件設計的時候,可能將ATM機拆分為“ATM認證”、“ATM打印”、“ATM取款”等幾個軟件類,這些軟件類互相配合,最后完成現實世界的ATM機器的功能。 ? 其次:軟件類并不一定是現實存在的 例如:策略(Strategy)是一個人的概念,但并不是你可以看見或者感知到的;但在軟件領域中,這是一個很常見的類 ? 也就是說,軟件類是對現實類的模擬,但并不簡單的等同,除了實現現實類相對應的功能外,我們還會創造出許多現實中并不存在的類,而這個創造過程,正是各種設計方法、設計模式、設計原則大顯身手的地方。 ? 當你創造出各種各樣、豐富多彩的對象后,各種對象開始發揮自己的功能,并且相互作用,相互影響,軟件世界就開始運作起來,呈現出多姿多彩的功能和作用,整個軟件世界都處于你的控制之下,你甚至只需小小的修改幾行代碼,整個軟件就可能呈現完全不同的功能。 **你,就是軟件世界的上帝!** 一個簡單的對象實例如下: ~~~ <span style="font-size:14px;">package com.oo.demo; public class Tester { public static void main(String[] args) { // 奧巴馬是一個“人”的對象 Person obama = new Person(); obama.setName("Obama"); obama.playBasketball(); System.out.println(); // 我也是一個“人”的對象 Person me = new Person(); me.setName("Yunhua Lee"); me.playFootball(); } }</span> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看