最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的static關鍵字修飾屬性和方法(推薦)

 更新時間:2022年04月14日 14:27:53   作者:俚語h。  
這篇文章主要介紹了Java中的static關鍵字修飾屬性和方法,包括哪些成員屬性可以被static修飾,靜態(tài)屬性的訪問方法示例詳解,需要的朋友可以參考下

static關鍵字

static關鍵詞與對象無關。
static關鍵字主要修飾四個部分的內(nèi)容

這里我們主要介紹static修飾屬性和修飾方法。

1.static修飾屬性(靜態(tài)屬性)

1.1.哪些成員屬性可以被static修飾。

我們把static修飾的屬性稱為靜態(tài)屬性,又叫類屬性。一個類里面的所有實例的這個屬性值都相同,我們就可以把這個屬性用static修飾,所有實例共享這個屬性值。靜態(tài)屬性在程序運行中是保存在方法區(qū)中的,而非靜態(tài)成員屬性在創(chuàng)建一個個實例對象時,和這個對象一樣存儲在堆區(qū)。

1.1.1.所有實例的某個屬性的值是一樣的,就可以使用static關鍵字修飾

例如:生活在同一個城市的所有人的所在地區(qū)屬性值是一樣的。
那么在定義這個屬性時就可以使用static關鍵字修飾。

public class Person {
    String name;
    int    age;
    String sex;
    //所在地區(qū)
    static String country;
}
1.1.2.類中的final常量

使用final修飾的常量的值是不能夠被改變的,那么就意味著這個類中,所有實例的這個屬性的值是一樣的。非靜態(tài)成員屬性每次在創(chuàng)建實例時都會開辟內(nèi)存,如果將final修飾的常量定義成靜態(tài)屬性,就可以節(jié)省每次創(chuàng)建實例后的一點內(nèi)存。
注意:定義final成員屬性時一定要賦初值。

public class Person {
    String name;
    String sex;
    //所在地區(qū)
    static String country;
    static final int age=18;

1.2.靜態(tài)屬性的訪問。

1.靜態(tài)屬性又稱為類屬性,對靜態(tài)屬性的訪問不需要創(chuàng)建對象,可以直接使用類名稱去訪問。

public class Person {
    String name;
    int    age;
    String sex;
    //所在地區(qū)
    static String country;

    public static void main(String[] args) {
        System.out.println(Person.country);
    }
}

2.如果這個類里面已經(jīng)創(chuàng)建了實例對象,也可以通過實例對象訪問靜態(tài)屬性。(不推薦)

public class Person {
    String name;
    int    age;
    String sex;
    //所在地區(qū)
    static String country;

    public static void main(String[] args) {
        Person per1=new Person();
        System.out.println(per1.country);
    }
}

我們就以前面這段代碼解釋一下代碼運行過程中內(nèi)存中的變化。

思考題:
1.我們可以在方法中定義靜態(tài)變量嗎?
答:不可以。方法中的變量是方法在被調(diào)用之后在棧區(qū)中存儲的,而靜態(tài)變量存在方法區(qū)的,不可能存在一個變量既存儲在方法區(qū)又存儲在棧區(qū)。
2.

public class Person {
    String name;
    String sex;
    //所在地區(qū)
    static String country;
    static final int age=18;

    public static void main(String[] args) {
        Person per1=new Person();
        per1=null;
        System.out.println(per1.name);
    }
}

上面這串代碼在運行時會出現(xiàn)

即:空指針異常,這段代碼中,per1引用指向的地址為空。
那么

public class Person {
    String name;
    String sex;
    //所在地區(qū)
    static String country;
    static final int age=18;

    public static void main(String[] args) {
        Person per1=new Person();
        per1=null;
        System.out.println(per1.country);
    }
}

這段代碼可以運行嗎?
答:可以的。因為conutry屬性是靜態(tài)屬性。運行這段代碼的時候系統(tǒng)會識別到是Person類中的,per1.country就相當于Person.country。所以不會出現(xiàn)空指針異常。

2.static關鍵字修飾方法

static關鍵字修飾的方法又叫類方法,工具方法,靜態(tài)方法。同樣的,他也是可以直接使用類名稱.方法名稱調(diào)用。沒有對象就可以訪問。

1.那些方法可以使用static修飾

1.工具類的方法設置為static方法
例如:
Arrays.sort(int [ ]):傳入一個int[ ]就可以使用,不需要創(chuàng)建對象去使用
2.一個程序的主方法
程序的主方法就是程序的入口,如果設置成非靜態(tài)方法,那么主方法的使用就需要創(chuàng)建對象,而程序都沒有入口進入,怎么去創(chuàng)建對象,程序就無法運行。因此程序的主方法要設置成靜態(tài)方法,直接使用,不需要創(chuàng)建對象。

2.常見的問題

1.靜態(tài)方法能否訪問成員變量和成員方法
答:不能。靜態(tài)方法的訪問是不需要創(chuàng)建對象的,也就是說靜態(tài)方法使用中是沒有對象的,而成員方法和成員變量的使用是需要創(chuàng)建對象的,所以靜態(tài)方法是無法訪問成員變量和成員方法。
2.成員方法能否訪問靜態(tài)屬性和靜態(tài)方法。
答:可以,成員方法的訪問前提是有對象,靜態(tài)方法和靜態(tài)屬性的訪問是沒有前提條件的。因此成員方法都可以訪問,那么靜態(tài)方法和靜態(tài)屬性是一定可以訪問的
3.普通的類能否使用static修飾(不是內(nèi)部類)。
答:不可以。類定義出來就是產(chǎn)生相應實例對象的,而用static修飾之后這個類沒有對象就可以調(diào)用了,這個類就沒有存在的意義了。在編譯過程中程序也會報錯。

到此這篇關于Java中的static關鍵字修飾屬性和方法的文章就介紹到這了,更多相關Java static關鍵字修飾屬性和方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

宜宾市| 巴彦县| 安仁县| 英德市| 兴城市| 禹城市| 吉林省| 分宜县| 嘉黎县| 青铜峡市| 柳州市| 图木舒克市| 桃源县| 泾川县| 卓资县| 宝山区| 乌拉特后旗| 准格尔旗| 武陟县| 宁海县| 咸丰县| 奉新县| 阳春市| 湖口县| 金溪县| 香港 | 临安市| 潼关县| 临高县| 奉化市| 兰西县| 陆川县| 娱乐| 当涂县| 方山县| 荔波县| 右玉县| 白玉县| 左权县| 长治县| 济南市|