91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java類的組成結構該怎么理解

發布時間:2021-12-18 08:56:29 來源:億速云 閱讀:147 作者:柒染 欄目:開發技術

這篇文章給大家介紹java類的組成結構該怎么理解,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

成員變量

成員變量便是在類中定義的變量。
例如這樣:

public class POP {
    int a = 1;
}

而成員變量又分為兩種,一種是被static所修飾的類變量,他歸類所有,一種是沒有被static修飾的實例變量,他歸對象所有。

如下:

public class POP {
    int a = 1;
    static int b = 1;
}

正如字面上的意思,歸類所有的變量b,他能在類的外部,直接通過POP.b的形式進行操作。

如下程序:

public static void main(String[] args) {
        POP.b++;
        System.out.println(POP.b);
    }

但是,在實際使用中,我們也可以通過對象.b的形式來調用他。

如下:

public static void main(String[] args) {
        POP.b++;
        System.out.println(POP.b);
        System.out.println(new POP().b);
    }

這是java很不好的一個缺陷,因為這個變量b,實際上是屬于類的,雖然能用對象來調用,但不建議。

再理解一下這個變量b只有一份,如下程序:

public static void main(String[] args) {
        POP.b++;
        System.out.println(POP.b);
        System.out.println(new POP().b++);
        System.out.println(new POP().b++);
    }

你會發現,盡管我使用不同的對象去對b進行操作,但是他們的操作卻共同作用在了同一個b上,這也是我為什么不建議使用對象來調用類變量。

成員變量可以被四種權限修飾符修飾,以適應各種適用情形。

成員變量可以被final修飾,作為常量。

成員變量也可以被我上面提到的static修飾。

附上總代碼:

public class POP {
    public static void main(String[] args) {
        POP.b++;
        System.out.println(POP.b);
        System.out.println(new POP().b++);
        System.out.println(new POP().b++);
    }
    int a = 1;
    static int b = 1;
}

方法

方法按照被static修飾分為實例方法以及類方法。

public void get(){

    }
    public static void did(){

    }

需要注意的是,實例方法可以調用類變量,而類方法不可以調用實例變量,為什么呢?

我們可以思考一下,類方法是為類所有的,實例方法是由對象所有的。

類存在的時候,對象不一定被創建了,如果這時候通過類方法來調用實例變量,此實例變量不存在,因此,這是不可取的。

方法可以被四種權限修飾符修飾。

方法可以被static修飾。

方法可以被final修飾,表示不能被子類重寫。

方法可以被abstract修飾,表示這為一個抽象方法,而只要有一個抽象方法,那該類就是一個抽象類。

關于抽象類的內容以后再談。

構造器

構造器,用于創建對象。

可以被四種權限修飾符修飾。

protected POP(){

    }
    POP(int a){

    }

我們可以通過this.POP(形參列表)的形式,來在構造器里面調用其他構造器,注意,這種方式,必須寫在方法體的最上部分,并且,如果沒有寫this,那么java會默認用super來調用父類的空參構造器,這也是為什么我們建議設計程序的時候

總是留一個空參構造器。

那么,我們為什么要在一個構造器里面通過this調用另一個構造器呢?

因為這樣能減少代碼的重復,方便我們迭代升級。

另外注意,構造器是沒有返回值的,當然你也可以說他的返回值就是他所創建的對象,不過我們不能顯示的指明。

代碼塊

代碼塊分為實例代碼塊和類代碼塊。

{
        System.out.println("實例代碼塊");
    }
    static{
        System.out.println("類代碼塊");
    }

類代碼塊屬于類,在類的加載的時候就會執行,而實例代碼塊在對象的創建的時候會執行。

關于java類的組成結構該怎么理解就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江口县| 石楼县| 岳阳市| 嘉峪关市| 新巴尔虎左旗| 长治市| 浑源县| 清新县| 绥滨县| 新密市| 巴楚县| 元朗区| 黄骅市| 长岛县| 太康县| 加查县| 涞水县| 永康市| 齐齐哈尔市| 大姚县| 额敏县| 洱源县| 安国市| 富裕县| 泉州市| 兴义市| 内黄县| 连城县| 廊坊市| 从江县| 高青县| 南汇区| 三台县| 利川市| 静乐县| 育儿| 文昌市| 普兰店市| 靖远县| 观塘区| 新宁县|