<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 連載:面向對象葵花寶典:思想、技巧與實踐(6) - 不要說你懂“類” 方以類聚,物以群分——《周易?易傳》。? 類是面向對象領域里最基礎的一個概念,也是面向對象分析和設計的基石。? 然而,如此重要的一個概念,竟然很難找到深入的說明,絕大部分介紹面向對象的書籍或者資料基本上都是這么解釋的:“類是一組對象的抽象”,這個解釋看起來清晰明了,但實際上犯了一個邏輯上的錯誤:以未明確的概念來解釋待明確的概念,什么是對象,什么是抽象,我們都還不知道,你卻用這個概念來解釋類?那當然看不懂了。? 還有另外一個解釋:類就是屬性和方法的集合!甚至還會給出如下這樣的樣例: ~~~ Class?Person{ Int??age; String??name; Void?play(); } ~~~ 這種解釋深究一下,其實很容易發現其犯了本末倒置的錯誤:類是本,代碼是末,只有清晰地掌握了類的概念,才能寫出好的代碼。否則,即使寫出了代碼,也是一堆爛代碼。 ? 那究竟何為類呢?? 其實,拋開面向對象,拋開程序開發,即使在我們的現實世界中,類也是無處不在的: 古語云:?物以類聚,人以群分,這里的“類”,其實和面向對象中的“類”的邏輯含義并無不同。 我們的生物學將生物分為動物、植物、微生物等種類,這里的“類”,和面向對象中的類概念也是一致的。? 因此,當我們在定義什么才是“類”的時候,其實完全不需要和面向對象扯上關系。簡單來說,**類就是一組相似事物的統稱**。? 這個定義看起來再簡單不過了,但為了避免在實踐過程中設計不合理的類,我們還要深挖背后的玄機,玄機在哪里呢? ? 玄機就在定義里面,我們來認真分析一下定義: 首先:請看“一組”,思考一下為什么是“一組”,不是“一個”? 其次:請看“相似”,思考一下為什么是“相似”,不是“相同”? 最后:請看“統稱”,思考一下為什么是“統稱”,不是“名稱”?? 第一個玄機——“一組”:一組的玄機在于“多個“,單個事物無法成為類。 一個很簡單的例子:“人“可以是一類,但“我”就不是一個類(那又是什么呢,請看后文分解?)? 第二個玄機——“相似”:相似的玄機在于“比較像,但不完全相同”。 還是“人”這個例子:奧巴馬和克林頓都是美國總統,都是人,有很多相似的地方,但他們兩個絕對不是完全相同的。? 第三個玄機——“統稱”:統稱的玄機在于“統”,也可以叫做“通稱”,統稱要能夠概括這多個事物。 還是上一個例子:奧巴馬和克林頓的統稱可以為“人”、“男人”、“總統”,但不會統稱為“奧巴馬”,因為奧巴馬是一個具體的人了。? 類的定義玄機我們已經基本解讀,看起來已經比較清晰了,但不要高興太早,還有一個更大的玄機:我們怎么劃分類? ? 一個很簡單的問題:你和我是一類么? 。。。應該是:) 再一個簡單的問題:你和豬是一類么? 你肯定會跳起來:我怎么和豬是一類呢? 但我要說,我們和豬確實是一類,我們都是“哺乳動物“。 再一個簡單的問題:你和松樹是一類么? 這次你可能學乖了:也是一類,都是“生物“。 。。。。。。 到這里你可能已經迷惑了“到底我和什么是一類“? 這個問題引出了類最重要的一個玄機:“如何定義類“?? 其實答案就隱藏在我們前面的問題中:“只要有相似點的就是同一類“! 我和你都是一類,是因為我們都是“人“; 你和豬是一類,是因為都是“哺乳動物“; 你和樹一類,是因為都是“生物“; 。。。。。。 ? 但這樣又引出另外一個問題:如果只要有相似點就是同一類,那么最后是不是只要用一個類“事物”或者“東西”就可以了呢,干嘛還用得著分那么多類么? 萬法歸一,所有的事物當然最后都可以歸為一類(例如在Java中就有一個大一統的類Class),但這顯然遠遠不能滿足我們的要求,實際應用中我們肯定需要不同的、多種多樣的類,那么具體如何操作呢?? 有一句廣告詞可以很好的概括:角度決定看法! 也就是說:站在你的觀察角度,能夠看到相似點就是同一類! 當你觀察人時,我和你是一類,但你和豬就不是一類了; 當你觀察動物時,我、你、豬都是一類,但樹就不是了; 當你觀察生物時,我、你、豬、樹都是一類 。。。。。。。 所以最后我們總結一下如何劃分類:**站在你的觀察角度,具有相似點的事物就是同一類**!
                  <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>

                              哎呀哎呀视频在线观看