Board logo

標題: static 關鍵字基本觀念 [打印本頁]

作者: 李泳霖    時間: 2022-3-17 15:35     標題: static 關鍵字基本觀念

本帖最後由 李泳霖 於 2022-3-26 13:35 編輯

來看看一個程式片段:

class Ball {
    double radius;
    final double PI = 3.14159;
    ...
}
如果你建立了多個Ball物件,那每個Ball物件都會有自己的radius與PI成員:
[attach]12908[/attach]
不過我們都知道,圓周率其實是個固定的常數,不用每個物件各自擁有,你可以在PI上宣告static,表示它屬於類別:

class Ball {
    double radius;
    static final double PI = 3.141596;
    ...
}
被宣告為static的成員,不會讓個別物件擁有,而是屬於類別,如上定義後,如果建立多個Ball物件,每個Ball物件只會各自擁有radius:
[attach]12909[/attach]
成員 (member) 宣告時若使用關鍵字 static 修飾,該成員變成屬於類別 (class) 而非物件 (object) ,因此使用 static 就不需要先建立物件。
我們舉例如下:例如同一個廠商生產的自行車,把自行車抽象為一個 類,物件就是每一輛自行車。每一輛自行車有價格、顏色等屬性,這些屬性每一輛自行車都不一樣,但是,他們的生產廠商都是一樣的,這個時候就可以把生產廠商定義成一個靜態型別。Static實體在記憶體中單獨存放,不跟物件的變數存放在一起。




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2