Math、代碼塊、繼承

Mathjava

public static double random() {
    return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
} // 取值範圍[0,1)

若要取值[1,10]: (int)(Math.random() * 10 )+ 1面試

代碼塊

        使用{}括起來的代碼,可分爲 局部代碼塊,構造代碼塊,靜態代碼塊,同步代碼塊dom

        局部代碼塊: 在方法中;限定變量生命週期,及早釋放,提升內存利用率spa

        構造代碼塊: 在類中方法外;多個構造方法中相同的代碼存放到一塊兒,每次調用構造都執行,而且在構造方法前執行對象

        靜態代碼塊: 在類中方法外,加static修飾;給類進行初始化,在加載的時候就執行,而且只執行一次blog

面試題? 靜態代碼塊 構造代碼塊 構造方法的執行順序?繼承

                 靜態代碼塊>構造代碼塊>構造方法接口

 

繼承

    繼承是類與類之間的關係,讓子類自動具有定義在父類中的屬性和行爲,從而達到代碼複用的目的 生命週期

 格式: 經過extends關鍵字能夠實現類與類的繼承,class 子類名 extends 父類名內存

    extends: 單繼承有且只有一個父類; 不寫extends,也會有一個默認的父類(Object, java中的根類)

        這個類被稱爲父類,基類或者超類;這多個類能夠稱爲子類或者派生類

類與類的關係:  is a 繼承; has a 組合

繼承的內存實現:  首先調用父類的構造方法,而後再調用子類的構造方法,構成一個完整的對象

    特色: 1 來自父類的屬性和行爲,都會無條件的繼承,可是,可否訪問到,是看父類中定義的修飾符

                2 父類的構造方法不會被子類繼承

                緣由: 2.1 語法上,構造方法要求與類名保持一致,因此一個子類不可能有一個構造方法的名字是父類的類名

                        2.2 邏輯上,構造方法是用來產生對象的,子類不可能擁有產生父類對象的方法

            3 只能單繼承,可是支持多層繼承

繼承的優勢: 結構清晰;缺點: 子類的豐富度不夠,靈活性不夠,因此Java中能夠使用接口類,進行彌補

    

    

繼承中成員方法的關係

    子類擁有父類相同的行爲,被稱爲方法覆蓋,方法重寫

        特色: 1 方法名不能變 2 參數列表相同 3 返回類型相同 4 訪問修飾符不能比父類的低

        5 重寫後的方法不能拋出比重寫前更多的異常

相關文章
相關標籤/搜索