在java培訓的過程中,我們會接觸到關(guān)于java常量的概念,對此,java課程培訓機構(gòu)做了如下這些介紹。
成都創(chuàng)新互聯(lián)是網(wǎng)站建設專家,致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,專業(yè)領(lǐng)域包括網(wǎng)站制作、網(wǎng)站建設、電商網(wǎng)站制作開發(fā)、小程序制作、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
常量是java語言中的一種標識符,它的值被設定后,就不允許再進行更改。
在使用常量時,需要注意到如下這些問題:
1、在java中,一般使用static和final關(guān)鍵字結(jié)合來聲明一個常量;
2、必須在常量聲明時對其進行初始化;
3、在java中給常量取名是一般都用大寫字符,便于跟變量區(qū)分;
在Java語言中,主要是利用final關(guān)鍵字(在Java類中靈活使用final關(guān)鍵字)來定義常量。
Java的基本數(shù)據(jù)類型也叫做內(nèi)置類型是java語言本身提供的數(shù)據(jù)類型,是引用其他類型的基礎。Java的基本數(shù)據(jù)類型分為:整數(shù)類型、浮點類型、字符類型、布爾類型這四個類型。
final關(guān)鍵字使用的范圍。這個final關(guān)鍵字不僅可以用來修飾基本數(shù)據(jù)類型的常量,還可以用來修飾對象的引用或者方法。
擴展資料
Java的基本數(shù)據(jù)類型分為:
1、整數(shù)類型
整數(shù)類型變量用來表示整數(shù)的數(shù)據(jù)類型。整數(shù)類型又分為字節(jié)型(byte)、短整型(short)、整型(int)、長整型(long)這四種。
2、浮點類型
浮點類型用來表示小數(shù)的數(shù)據(jù)類型。浮點類型分為float(單精度型)和double(雙精度類型)這兩種。float(單精度型)一般在精度要求不高的時候使用。double(雙精度類型)一般在數(shù)值精度高的時候使用。
3、字符類型
字符類型的關(guān)鍵字是“char”。
4、布爾類型
布爾類型是表示邏輯值的基本數(shù)據(jù)類型。boolean常量有“真”和“假”這兩個狀態(tài)。一般用true表示“真”、false表示“假”。它的定義方法是在變量名前加上類型關(guān)鍵字boolean。
Java 常量,有2種意思,我分別說明:
第1種意思,就是一個值,這個值本身,我們可以叫它常量,舉幾個例子:
整型常量: 123
實型常量:3.14
字符常量: 'a'
邏輯常量:true、false
字符串常量:"helloworld"
這只是說法的問題,比如7這個數(shù),我們就可以說“一個int類型的常量7 ”
-------
還有另一種,就是樓主問的這種:
第2種意思,表示不可變的變量,這種也叫常量,從語法上來講也就是,加上final,使用final關(guān)鍵字來修飾某個變量,然后只要賦值之后,就不能改變了,就不能再次被賦值了,據(jù)個例子:
final int i = 0;
那么這個i的值是絕對不能再被更改了,只能是0,所以說是 不可變的變量,這句話看似矛盾,其實不矛盾,這句話這樣理解:
i就是一個int類型的變量,變量本身是可變的(可被更改值),但是現(xiàn)在加了final,所以不可變了,所以是不可變的變量。
java沒有叫全局變量的東西(有全局變量還叫OO嗎?);原因:Java將所有設計都基于對象的基礎上。Java的全局變量只能對一個類內(nèi)部而言。能夠在類內(nèi)的任何地方使用的變量就是全局變量,而只在某個特定的函數(shù)或者局部的程序塊內(nèi)使用的變量則是局部變量。
所以:聲明為static的變量實質(zhì)上就是全局變量。當聲明一個對象時,并不產(chǎn)生static變量的拷貝,而是該類所有的實例變量共用同一個static變量。
使用:java中只有static和非static變量,這個屬于每個類的,如果需要全局變量比如PI(3.14...),可以寫一個類Math,定義static變量PI,調(diào)用Math.PI就可以使用了,這樣就達到我們使用全局變量的目的了。
1、將一個 package 中需要的常量集中到一個 XyzConstants 之類的 interface 里聲明,
就像普通的 field 那樣聲明就行了。
復制代碼代碼如下:
public interface SomeConstants {
public intPORT = 80;
public String IP = "166.111.16.1";
public boolean test = true;
}
就可以。
用到常量的類 implements 這個接口 .. 簡單情況這樣就行樂。
2、更 formal 的做法是寫一個類維護所有的常量,負責從配置文件(例如properties文件或xml文件)讀取所有的常量的值。
可以在一個 static {} 塊里從配置文件中初始化所有 static 的變量。 這樣有利于提高軟件的可配置性。改些東東不用動代碼,比較好。
最好要有 config Tool 負責寫配置文件。
3.其他說明:
定義一個公開類,在里面加static 變量。
復制代碼代碼如下:
public class infos{
private infos(){
}
public static int PORT = 80;
public static String IP = "166.111.166.111";
public static boolean test = true;
public static final String MYNAME="zzz"; //定義中用了final,就是不能改變的。
}
在別的class中調(diào)用這些變量就是: infos.PORT,infos.IP,infos.test,infos.MYNAME
多個class交互時可以通過改變這些變量的值來傳遞信息。比如 infos.test被別的class改成了false,可能表示某一件事已經(jīng)失敗或已經(jīng)做過,其它class就可以提前知道這些信息。
其中infos.MYNAME被定義為了final,即成為常量。用final修飾的成員變量表示常量,值一旦給定就無法改變!
常量可以理解成一種特殊的變量,它的值被設定后,在程序運行過程中不允許被改變。
常量在程序運行過程中主要有2個作用:
代表常數(shù),便于程序的修改(例如:圓周率的值)
增強程序的可讀性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數(shù)值分別是1、2、3和4)
常量的語法格式和變量類型,只需要在變量的語法格式前面添加關(guān)鍵字final即可。在Java編碼規(guī)范中,要求常量名必須大寫。
則常量的語法格式如下:
final 數(shù)據(jù)類型 常量名稱 = 值;
final 數(shù)據(jù)類型 常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n;
例如:
final double PI = 3.14;
final char MALE=‘M’,F(xiàn)EMALE=‘F’;
在Java語法中,常量也可以首先聲明,然后再進行賦值,但是只能賦值一次,示例代碼如下:
final int UP;
UP = 1;
在程序中存在大量的數(shù)據(jù)來代表程序的狀態(tài),其中有些數(shù)據(jù)在程序的運行過程中值會發(fā)生改變而有些不能發(fā)生改變,這些數(shù)據(jù)在程序中分別被叫做變量和常量。下面小編跟大家講講Java中變量和常量之間的區(qū)別,一起來看看。
Java中變量和常量區(qū)別
常量:其值不變即為常量。
語法:
數(shù)據(jù)類型 常量名 = 值;
double PI = 3.14;
備注:
一般默認常量名大寫。
變量與常量之間關(guān)系(量間關(guān)系)
先來一個簡單的實例,好了解 Java 里變量與常量之間的關(guān)系。
下面的程序里聲明了兩種 Java 經(jīng)常使用到的變量,分別為整型變量 num 與字符變量 ch。為它們賦值后,再把它們的值分別顯示在控制臺上:
下面的程序聲明了兩個變量,一個是整型,一個是字符型
輸出結(jié)果:
3 是整數(shù)!
z 是字符!
說明:
聲明了兩種不同類型的變量 num 與 ch,并分別將常量 3 與字符“z”賦值給這兩個變量,最后再將它們顯示在顯示器上。聲明一個變量時,編譯程序會在內(nèi)存里開辟一塊足以容納此變量的內(nèi)存空間給它。不管變量的值如何改變,都永遠使用相同的內(nèi)存空間。因此,善用變量將會是一種節(jié)省內(nèi)存的方式。
常量是不同于變量的一種類型,它的值是固定的,例如整數(shù)常量、字符串常量。通常給變量賦值時,會將常量賦值給它,在程序 TestJava 中,第 6 行 num 是整型變量, 而 3 則是常量。 此行的作用是聲明 num 為整型變量, 并把常量 3 這個值賦給它。
相同的,第 7 行聲明了一個字符變量 ch,并將字符常量'z'賦給它。當然,在程序進行的過程中,可以為變量重新賦值,也可以使用已經(jīng)聲明過的變量。
變量的介紹
變量代表程序的狀態(tài)。程序通過改變變量的值來改變整個程序的狀態(tài),或者說得更大一些,也就是實現(xiàn)程序的功能邏輯。
為了方便的引用變量的值,在程序中需要為變量設定一個名稱,這就是變量名。例如在2D游戲程序中,需要代表人物的位置,則需要2個變量,一個是x坐標,一個是y坐標,在程序運行過程中,這兩個變量的值會發(fā)生改變。
由于Java語言是一種強類型的語言,所以變量在使用以前必須首先聲明,在程序中聲明變量的語法格式如下
數(shù)據(jù)類型 變量名稱;
例如:int x;
在該語法格式中,數(shù)據(jù)類型可以是Java語言中任意的類型,包括前面介紹到的基本數(shù)據(jù)類型以及后續(xù)將要介紹的復合數(shù)據(jù)類型。變量名稱是該變量的標識符,需要符合標識符的命名規(guī)則,在實際使用中,該名稱一般和變量的用途對應,這樣便于程序的閱讀。
數(shù)據(jù)類型和變量名稱之間使用空格進行間隔,空格的個數(shù)不限,但是至少需要1個。語句使用“;”作為結(jié)束。
也可以在聲明變量的設定該變量的值,語法格式如下
數(shù)據(jù)類型 變量名稱 = 值;
例如:int x = 10;
在該語法格式中,前面的語法和上面介紹的內(nèi)容一致,后續(xù)的“=”代表賦值,其中的“值”代表具體的數(shù)據(jù)。在該語法格式中,要求值的類型需要和聲明變量的數(shù)據(jù)類型一致。
也可以一次聲明多個相同類型的變量,語法格式如下:數(shù)據(jù)類型 變量名稱1,變量名稱2,…變量名稱n;例如:int x,y,z;在該語法格式中,變量名之間使用“,”分隔,這里的變量名稱可以有任意多個。
也可以在聲明多個變量時對變量進行賦值,語法格式如下
數(shù)據(jù)類型 變量名稱1=值1,變量名稱2=值2,…變量名稱n=值n;
例如:
int x = 10,y=20,z=40;
也可以在聲明變量時,有選擇的進行賦值,例如:int x,y=10,z;以上語法格式中,如果同時聲明多個變量,則要求這些變量的類型必須相同,如果聲明的變量類型不同,則只需要分開聲明即可,例如
int n = 3;
boolean b = true;
char c;
在程序中,變量的值代表程序的狀態(tài),在程序中可以通過變量名稱來引用變量中存儲的值,也可以為變量重新賦值。例如:
int n = 5;
n = 10;
在實際開發(fā)過程中,需要聲明什么類型的變量,需要聲明多少個變量,需要為變量賦什么數(shù)值,都根據(jù)程序邏輯決定,這里列舉的只是表達的格式而已。
常量的介紹
常量代表程序運行過程中不能改變的值。
常量在程序運行過程中主要有2個作用。
分別為代表常數(shù),便于程序的修改和增強程序的可讀性。
常量的語法格式和變量類型,只需要在變量的語法格式前面添加關(guān)鍵字final即可。在Java編碼規(guī)范中,要求常量名必須大寫。
則常量的語法格式如下
final 數(shù)據(jù)類型 常量名稱 = 值;
final 數(shù)據(jù)類型常量名稱1 = 值1, 常量名稱2 = 值2,……常量名稱n = 值n;
例如:
final double PI = 3.14;
final char MALE=‘M’,F(xiàn)EMALE=‘F’;
在Java語法中,常量也可以首先聲明,然后再進行賦值,但是只能賦值一次,示例代碼如下:
final int UP;
UP = 1;
常量的兩種用途對應的示例代碼分別如下:
代表常數(shù)
final double PI = 3.14;
int r =5;
double l = 2 * PI * r;
double s = PI * r * r;
在該示例代碼中,常量PI代表數(shù)學上的∏值,也就是圓周率,這個是數(shù)學上的常數(shù),后續(xù)的變量r代表半徑,l代表圓的周長,s代表圓的面積。
則如果需要增加程序計算時的精度,則只需要修改PI的值3.14為3.1415926,重新編譯程序,則后續(xù)的數(shù)值自動發(fā)生改變,這樣使代碼容易修改,便于維護。
增強程序的可讀性
int direction;
final int UP = 1;
final int DOWN = 2;
final int LEFT = 3;
final int RIGHT = 4;
在該示例代碼中,變量direction代表方向的值,后續(xù)的四個常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其數(shù)值分別是1、2、3和4,這樣在程序閱讀時,可以提高程序的可讀性。