java - public static final 定义的变量是用来干什么的?
PHP中文网
PHP中文网 2017-04-18 10:28:39
0
6
647

我在项目中看到一个类里定义的变量都是public static final的,问了一下同事说是常量类,为什么要这么定义呢?是因为static是全局的,final是不可修改的吗?那这和定义一个private变量再定义一个get方法有什么区别?

PHP中文网
PHP中文网

认证0级讲师

全部回覆(6)
大家讲道理

先回答問題

  • static是為了讓其成為類別的成員,而不是物件的成員,這樣用起來就方便了

  • public是為了方便訪問

  • final則是表示這是常數,不能修改

  • private的對象,然後定義get、set是為了存取控制,是一種常規的封裝

  • 綜上,public static final可以讓訪問變得很方便,而且不會被修改。一般可以放配置訊息,還有一些狀態碼的定義。

其他的補充:

  • static修飾的物件是放在引用的根下的,意味著幾乎不會被回收

洪涛

static 是靜態的這樣被static修飾過得變量,可以直接用過類名.變量名的方式調用, 而不需要通過類的實例化對象引用
final 修飾變量多用於聲明一個常量在變量被第一次賦值了之後,這個變數就相當於一個常數或是可以理解成這個變數的值固定了,值無法被修改

迷茫

全域常數。例如專案全域配置,就可以用public static final修飾

刘奇

定義了private,其他類別下面就無法存取。那這樣的常數定義又有什麼意義呢。

伊谢尔伦

靜態常數 舉個栗子

public class Constant {

    public static final int DEAFULT_TAG = 0xcc33;

    public static final int DEFAULT_VERSION = 1;


    public static final Long PHOTO_PRICE = 1L;


    public static final String OSS_STYLE = "?x-oss-process=style/photo_printer";
}

上邊的 Constant做為一個常數類,我在其餘各種地方需要調用常數的時候

直接使用 Constant.OSS_STYLE 就好了

阿神

說白了就是為了方便訪問,增加代碼閱讀性,性能上倒是沒有太大的差異.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板