教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Java培訓(xùn):靜態(tài)屬性

更新時(shí)間:2022年07月26日11時(shí)20分 來(lái)源:傳智教育 瀏覽次數(shù):

  如果在Java程序中使用static修飾屬性,則該屬性稱為靜態(tài)屬性(也稱全局屬性),靜態(tài)屬性可以使用類名直接訪問(wèn),訪問(wèn)格式如下:

類名·屬性名

  在學(xué)習(xí)靜態(tài)屬性之前,先來(lái)看一個(gè)案例,如文件3-13所示。

  文件3-13 Example13.java

class Student {
    String name;                       //定義name屬性
    int age;                          //定義age屬性
    String school = "A大學(xué)";          //定義school屬性
    public Student (String name,int age) {
        this.name = name;
        this.age = age;
    }
    public void info () {
   System.out.println ("姓名:" + this.name+", 年齡:"+this. age+", 學(xué)校:" + school);
  }
}
public class Example13 {
    public static void main (String[] args) {
        Student stul = new Student ("張三",18);  //創(chuàng)建學(xué)生對(duì)象
        Student stu2 = new Student ("李四",19);
        Student stu3 = new Student ("王五",20);
        stu1.info () ;
        stu2.info () ;
        stu3.info () ;
    }
}

  文件3-13中,第5~7行代碼聲明了Student類的有參構(gòu)造方法,第9~11行代碼輸出了name和age屬性的值。第16~20行代碼分別定義了Student類的3個(gè)實(shí)例對(duì)象,并分別使用3個(gè)實(shí)例對(duì)象調(diào)用info()方法。

  圖3-18 文件3-13的運(yùn)行結(jié)果

  在圖3-18中,3名學(xué)生均來(lái)自A大學(xué)。下面考慮一種情況:假設(shè)A大學(xué)改名為B大學(xué),而且此Student類已經(jīng)產(chǎn)生了10萬(wàn)個(gè)學(xué)生對(duì)象,那么意味著,如果要修改這些學(xué)生對(duì)象的學(xué)校信息,就需要把這10萬(wàn)個(gè)對(duì)象中的學(xué)校屬性全部修改,共修改10萬(wàn)遍,這樣肯定是非常麻煩的。

  為了解決上述問(wèn)題,可以使用static關(guān)鍵字修飾school屬性,將其變?yōu)楣矊傩?。這樣,school屬性只會(huì)分配一塊內(nèi)存空間,被Student類的所有對(duì)象共享,只要某個(gè)對(duì)象進(jìn)行了一次修改,全部學(xué)生對(duì)象的school屬性值都會(huì)發(fā)生變化。

0 分享到:
和我們?cè)诰€交談!