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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                1).如果你曾經學習過第二種語言,并嘗試在課堂之外使用這種語言,那么你該知道有三件事情是必須掌握的: 1. 這門語言的結構如何(語法) 2. 如何命名你想談論的事物(詞匯) 3. 如何用習慣和高效的方式來表達事物(用法) 在課堂山只是涉及到前面兩點,而當你努力使對方明白你的意思的時候,你常常發現當地人對你的表述忍俊不禁! 對于程序設計語言,也是如此。你需要理解語言的核心:它是面向算法的,還是面向函數的,或者是面向對象的? 你需要知道詞匯表:標準庫提供了那些數據結構、操作和功能設施? 你還需要熟悉如何用習慣和高效的方式來構建代碼。關于程序設計語言的書籍通常只是涉及到前面亮點,或者只是蜻蜓點水般地介紹一下用法。也許原因在于,前面亮點更加容易編寫。語法和詞匯是語言本身固有的特性,但是用法則反映了使用這門語言的群體的特性。 -- Guy Steele ,Sun研究院的杰出工程師,程序涉及語言領域的世界級 專家,Scheme語言的設計者之一. 2)記住:多使用Map entrySet()和valueSet()方法而不是使用keySet()方法. 3)要想區別一個設計良好的模塊與一個設計不好的模塊,最重要的因素是,這個模塊對于外部的其他模塊而言,是否隱藏了內部的數據和其他的實現細節。一個設計良好的模塊會隱藏所有的實現細節,把它的API與實現清晰地隔離開來。 然后,模塊之間只通過它們的API進行通信,一個模塊不需要知道其他模塊的內部工作情況。這個概念被稱為信息隱藏 或 封裝,是軟件設計的基本原則之一. 4) 靜態成員類 非靜態成員類 匿名類 局部類 (后三種稱為內部類) 優先考慮靜態成員類,靜態成員類的一種通常用法是作為公有的輔助類,僅當與它的外部類一起使用時才有意義; 非靜態成員類的每一個實例都隱含著與外圍類的一個外圍實例緊密關聯在一起,在非靜態成員類的實例方法內部,調用外圍實例上的方法是有可能的,或者使用經過修飾的this也可以得到一個外圍實例的引用; 如果一個嵌套類的實例可以在它的外圍類的實例之外獨立存在,那么這個嵌套類不可能是一個非靜態成員類:在沒有外圍實例的情況下要想創建非靜態成員類的實例是不可能的; 當匪靜態成員類的實例被創建的時候,它和外圍實例之間的關聯也隨之被建立起來,而且,這種關系以后不能被修改,參見Map.Entry; 如果你聲明的成員類不要求訪問外圍實例,那么請記住把static修飾符放到成員類的聲明中,如果你省略了static,則每個實例都將包含一個額外的指向外圍對象的引用,維護這份引用要消耗時間和空間,但有沒有相應的好處; 私有靜態成員類的一種通常用法是用來代表外圍類對象的組件,考慮一個Map實例,它吧鍵(key) 和 值(value)關聯起來,Map實例內部通常有一個Entry對象對應于Map中的每一個鍵-值對; ## 匿名類 匿名類的一個通常用法是創建一個函數對象(functional object): Arrays.sort(args, new Comparator(){ public int compare(Object o1,Object o2).. } 匿名類的另一個常見用法是創建一個過程對象(process object),比如Runnable ,Thread ,TimerTask實例 第三個用法是在一個靜態工廠方法的內部 第四種用法是在復雜的類型安全枚舉類型中,用于公有的靜態final域的初始化器中 四種嵌套類使用總結: 如果一個嵌套類需要在單個方法之外仍然是可見的,或者它太長了,不適合放在一個方法id內部,那么應該使用成員類 如果成員類的每一個實例都需要一個指向其它外圍實例的引用,則把成員類做成非靜態的,否則就做成靜態的 假設一個嵌套類屬于一個方法的內部,如果你只需要在一個地方創建它的實例,并且已經有了一個預先存在的類型可以說明這個類的特征,則把它做成匿名類;否則就做成局部類。 Tip: 對于重載方法(overloaded method)的選擇是靜態的,而對于改寫的方法(overridden method)的選擇是動態的。對于被改寫的方法,選擇正確的版本是在運行時刻進行的,選擇的依據是被調用方法所在對象的運行時類型。 Tip: 因為改寫機制是規范,而重載機制是例外,所以,改寫機制滿足了人們對于方法調用行為的期望。一個安全而保守的策略是:永遠不要導出兩個具有相同參數數目的重載方法。 ## 常用命名規則 run call enable/disable 返回不同類型的獨立對象的方法:toType: toString toArray 返回一個試圖,試圖的類型不同于接收對象的類型的方法:asType :asList ,asMap 返回一個與被調用對象同值的原語類型的方法,一般命名為:typeValue :intValue booleanValue 靜態工廠的常用名字為valueOf 或者 getInstance Tip 最常用的可重用異常: IllegalArgumentException 參數的值不合適 IllegalStateException 對于這個方法調用而言,對象狀態不合適 NullPointerException 在Null被禁止的情況下參數為null IndexOutOfBoundException 下標越界 ConcurrentModificationException 在禁止并發修改的情況下,對象檢測到并發修改 UnsupportedOperationException 對象不支持客戶請求的方法 總結一條規則:作為方法規范的一部分,任何一個異常都不應該改變對象調用該方法之前的狀態。如果這條規則被違反,則API文檔應該清楚地之指明對象將會處于什么樣的狀態。
                  <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>

                              哎呀哎呀视频在线观看