以友圓上該類常量野告陪是該類對象的屬性是不對的,屬性只有在定義封裝後set和get方法才出現的。只能說是該對象的成頌蠢員欄位。
如何在Java中定義常量
java沒有叫全局變數的東西(有全局變數還叫OO嗎?);原因:Java將所有設計都基於對象的基礎上。Java的全局變數只能對一個類內部而言。能夠在類內的任何地方使用的變數就是全局變數,而只在某個特定的函數或者局部的程序塊內使用的變數則是局部變升數棗量。
所以:聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共用同一個static變數。
使用:java中只有static和非static變數,這個屬於每個類的,如果需要全局變數比如PI(3.14...),可以寫一個類Math,定義static變數PI,調用Math.PI就可以使用了,這樣就達到我們使用全局變數的目的了。
1、將一個package中需要的常量集中到一個XyzConstants之類的interface里聲明,
就像普通的field那樣聲明就行了。
復制代碼代碼如下:
publicinterfaceSomeConstants{
publicintPORT=80;
publicStringIP="166.111.16.1";
publicbooleantest=true;
}
就可以。
用到常量的類implements這個介面..簡單情況這樣就行樂。
2、更formal的做法是寫一個類維護所有的常量,負責從配置文件(例如properties文件或xml文件)讀取所有的常量的值。
可以在一個static{}塊里畢姿從配置文件中初始化所有static的變數。這樣有利於提高軟體的可配置性。改些東東不用動代碼,比較好。
最好要有configTool負責寫配置文件。
3.其他說明:
定義一個公開類,在裡面加static變數。
復制代碼代碼如下:
publicclassinfos{
privateinfos(){
}
publicstaticintPORT=80;
publicstaticStringIP="166.111.166.111";
publicstaticbooleantest=true;
publicstaticfinalStringMYNAME="zzz";//定義中用了final,就是不能吵拆改變的。
}
在別的class中調用這些變數就是:infos.PORT,infos.IP,infos.test,infos.MYNAME
多個class交互時可以通過改變這些變數的值來傳遞信息。比如infos.test被別的class改成了false,可能表示某一件事已經失敗或已經做過,其它class就可以提前知道這些信息。
其中infos.MYNAME被定義為了final,即成為常量。用final修飾的成員變數表示常量,值一旦給定就無法改變!望採納
java中有關常量的問題舉例:
publicclassTest{
publicfinalinta=1;
publicfinalstaticintA=1;
}
想的到a的值,方法是:
新建皮叢陵一個Test對象,然後得到其屬性值,即:
Testt=newTest();
intvalue=t.a;
想得到A的值,方法是:
直接用類名得到,即:
intvalue=Test.A;
也就是說,像a這種普通屬性的值,要通過對象來得到;而相A這種靜態(帶static)的屬性,則要通過類名來得到。
注意:例子中的a寫成了public的,僅僅是用來說明普通屬性和鄭廳靜態燃戚屬性的區別,真正寫類時,普通屬性要寫成private的,然後通過get方法來得到,即:
publicclassTest{
privateinta;
publicintgetA(){
returna;
}
}
使用getA()方法,即可得到a的值了;
而靜態屬性則寫成public的。
㈡ Java中提供的常量一般都有什麼作用
根據我自己的理解,有這么幾個作用:1、將沒有人類語言意義的值轉換成人類回能看懂的答變數名。例如:Color 類中就有很多常量,如果說 1表示紅,2表示綠,3表示藍。。。那是記不住那麼多種顏色的。要是使用 RED、GREEN、BLUE 那顯然就好記多了。2、統一和標准化。如果一個類可以以不同的狀態出現,那麼就需要一個「量」來告訴它要以什麼狀態呈現,那麼這個時候使用自身帶的參數無疑是最好了,一方面限定了選擇的范圍,另一方面它不用告訴外界這里使用的具體是什麼值。3、方便類以後的擴展。如 Color 類一開始就是約定了 1表示紅、2表示綠這樣的方式,後來又發現用 0表示紅,1表示綠更合理(這里只是打個比方),那也無法改成這種合理的做法了,因為很多人都已經使用了 1來表示紅,如果 JDK 裡面改變了,別人使用新版本的 JDK 之後,就會發現原來紅色的地方全變成綠色的了。但如果原來是使用常量 RED=1,那麼現在只需要改成 RED=0 ,就可以,因為除了這個地方,其它地方出現的都是「RED」,全都跟著變了。這是我的拙見,希望有助你釋疑。
㈢ java 常量什麼怎麼定義的
Java 常量,有2種意思,我分別說明:
第1種意思,就是一個值,這個值本身,我們可以叫它常量,舉幾個例子:
整型常量: 123
實型常量:3.14
字元常量: 'a'
邏輯常量:true、false
字元串常量:"helloworld"
這只是說法的問題,比如7這個數,我們就可以說「一個int類型的常量7 」
-------
還有另一種,就是樓主問的這種:
第2種意思,表示不可變的變數,這種也叫常量,從語法上來講也就是,加上final,使用final關鍵字來修飾某個變數,然後只要賦值之後,就不能改變了,就不能再次被賦值了,據個例子:
final int i = 0;
那麼這個i的值是絕對不能再被更改了,只能是0,所以說是 不可變的變數,這句話看似矛盾,其實不矛盾,這句話這樣理解:
i就是一個int類型的變數,變數本身是可變的(可被更改值),但是現在加了final,所以不可變了,所以是不可變的變數。