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

深入了解Java中的static關(guān)鍵字

 更新時(shí)間:2022年11月16日 16:26:29   作者:糖芬蛋糕  
這篇文章主要為大家詳細(xì)介紹了Java中的static關(guān)鍵字的用法的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下

static修飾成員變量

static修飾的成員變量,稱為靜態(tài)成員變量,靜態(tài)成員變量最大的特性:不屬于某個(gè)具體的對(duì)象,是所有對(duì)象所共 享的

public class Student{
    public String name;
    public String gender;
    public int  age;
    public double score;
    public static String classRoom = "Bit306";
Student(String name,String gender,int  age,double score){
    this.name=name;
    this.gender=gender;
    this.age=age;
    this.score=score;
}
    public static void main(String[] args) {
        // 靜態(tài)成員變量可以直接通過(guò)類名訪問(wèn)
        System.out.println(Student.classRoom);
        Student s1 = new Student("Li leilei", "男", 18, 3.8);
        Student s2 = new Student("Han MeiMei", "女", 19, 4.0);
        Student s3 = new Student("Jim", "男", 18, 2.6);
        // 也可以通過(guò)對(duì)象訪問(wèn):但是classRoom是三個(gè)對(duì)象共享的
        System.out.println(s1.classRoom);
        System.out.println(s2.classRoom);
        System.out.println(s3.classRoom);
    }
}

此時(shí)通過(guò)代碼我們可以看到被static關(guān)鍵字修飾的成員屬于某個(gè)具體的對(duì)象,是所有對(duì)象所共 享的

【靜態(tài)成員變量特性】

  • 不屬于某個(gè)具體的對(duì)象,是類的屬性,所有對(duì)象共享的,不存儲(chǔ)在某個(gè)對(duì)象的空間中
  • 既可以通過(guò)對(duì)象訪問(wèn),也可以通過(guò)類名訪問(wèn),但一般更推薦使用類名訪問(wèn)
  • 類變量存儲(chǔ)在方法區(qū)當(dāng)中
  • 生命周期伴隨類的一生(即:隨類的加載而創(chuàng)建,隨類的卸載而銷毀)

static修飾成員方法

一般類中的數(shù)據(jù)成員都設(shè)置為private,而成員方法設(shè)置為public,那static屬性應(yīng)該如何訪問(wèn)呢?

public class Student{
    public String name;
    public String gender;
    public int  age;
    public double score;
    private static String classRoom = "Bit306";
Student(String name,String gender,int  age,double score){
    this.name=name;
    this.gender=gender;
    this.age=age;
    this.score=score;
}
}
class Textstudent{
    public static void main(String[] args) {
        // 靜態(tài)成員變量可以直接通過(guò)類名訪問(wèn)
        System.out.println(Student.classRoom);
        Student s1 = new Student("Li leilei", "男", 18, 3.8);
        Student s2 = new Student("Han MeiMei", "女", 19, 4.0);
        Student s3 = new Student("Jim", "男", 18, 2.6);
        // 也可以通過(guò)對(duì)象訪問(wèn):但是classRoom是三個(gè)對(duì)象共享的
        System.out.println(s1.classRoom);
        System.out.println(s2.classRoom);
        System.out.println(s3.classRoom);
    }
}

此時(shí)我們會(huì)發(fā)現(xiàn)編譯器報(bào)錯(cuò)

Java中,被static修飾的成員方法稱為靜態(tài)成員方法,是類的方法,不是某個(gè)對(duì)象所特有的。靜態(tài)成員一般是通過(guò) 靜態(tài)方法來(lái)訪問(wèn)的

public class Student {
    public String name;
    public String gender;
    public int age;
    public double score;
    private static String classRoom = "Bit306";
    public static String getClassRoom() {
        return classRoom;
    }
}
 class Textstudent{
    public static void main(String[] args) {
        System.out.println(Student.getClassRoom());
    }
}

這里的getClassRoom成員方法要用static關(guān)鍵字修飾否則還要重新實(shí)例化對(duì)象,用static修飾后可以直接通過(guò)類名調(diào)用

【靜態(tài)方法特性】

1.不屬于某個(gè)具體的對(duì)象,是類方法

2.可以通過(guò)對(duì)象調(diào)用,也可以通過(guò)類名.靜態(tài)方法名(…)方式調(diào)用,更推薦使用后者

3.不能在靜態(tài)方法中訪問(wèn)任何非靜態(tài)成員變量

public class Student {
    public String name;
    public String gender;
    public int age;
    public double score;
    private static String classRoom = "Bit306";
    public static String getClassRoom(){
        age += 1;
         return classRoom;
    }
}
 class Textstudent{
    public static void main(String[] args) {
        System.out.println(Student.getClassRoom());
    }
}

4.靜態(tài)方法中不能調(diào)用任何非靜態(tài)方法,因?yàn)榉庆o態(tài)方法有this參數(shù),在靜態(tài)方法中調(diào)用時(shí)候無(wú)法傳遞this引用

public static String getClassRoom(){
    doClass();
    return classRoom;
}
// 編譯報(bào)錯(cuò):Error:(35, 9) java: 無(wú)法從靜態(tài)上下文中引用非靜態(tài) 方法 doClass()

static成員變量初始化

靜態(tài)成員變量的初始化分為兩種:就地初始化 和 靜態(tài)代碼塊初始化

就地初始化

public class Student{
    private String name;
    private String gender;
    private int  age;
    private double score;
    private static String classRoom = "Bit306";  
}

靜態(tài)代碼塊初始化

  static {
        classRoom = "bit306";
   }

使用static定義的代碼塊稱為靜態(tài)代碼塊。一般用于初始化靜態(tài)成員變量。

默認(rèn)初始化

public class Student{
    private String name;
    private String gender;
    private int  age;
    private double score;

通過(guò)提供get和set方法初始化

  public static String getClassRoom() {
        return classRoom;
    }

???????    public static void setClassRoom(String classRoom) {
        Student.classRoom = classRoom;
    }

其中g(shù)et方法是獲取修改后的值,set方法是設(shè)置static修飾的值

到此這篇關(guān)于深入了解Java中的static關(guān)鍵字的文章就介紹到這了,更多相關(guān)Java static關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

磴口县| 澄城县| 梨树县| 塔河县| 新疆| 宜君县| 红桥区| 苍山县| 阜康市| 海林市| 琼中| 隆化县| 信丰县| 山东| 榆中县| 天柱县| 库车县| 元氏县| 任丘市| 民丰县| 那坡县| 苏尼特左旗| 扶沟县| 克拉玛依市| 冀州市| 靖西县| 庆安县| 保康县| 洱源县| 山丹县| 阜平县| 荥阳市| 青川县| 乌鲁木齐市| 太白县| 武邑县| 章丘市| 靖边县| 上饶市| 盐边县| 定边县|