更新時(shí)間:2020-06-19 13:44:08 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2590次
Java全局變量(或稱(chēng)成員變量)可分兩種,一種是靜態(tài)變量,另一種是實(shí)例變量,即在類(lèi)體中定義的變量,有三點(diǎn)得注意:
一、成員變量不能在類(lèi)體中先聲明(定義)后賦值,但靜態(tài)變量可以先在類(lèi)體中聲明,然后在方法中賦值(當(dāng)然實(shí)例變量是不行的);
1)如以下程序會(huì)出問(wèn)題:
public?class?Test?{
static?int?a;?//在類(lèi)體中聲明整型靜態(tài)變量a。
int?b;?//在類(lèi)體中聲明整型實(shí)體變量b。
a=3;?//在類(lèi)體中對(duì)靜態(tài)變量a賦初值。
b=5;?//在類(lèi)體中對(duì)實(shí)體變量b賦初值。
public?static?void?main(String[]?args)?{
System.out.println("a+b="+(a+b));
}
}
java中全局變量為什么不能先聲明再賦值?
public?class?Test{
int?b;
b=5;
}
為什么這種先聲明后賦值是錯(cuò)誤?什么機(jī)制導(dǎo)致的?
那是因?yàn)閕=3這是賦值語(yǔ)句,不能單獨(dú)出現(xiàn)在方法或{}以外的地方
改成
public?class?Test{
int?i;
{i?=?3;}?//寫(xiě)在{}里就可以了(這種代碼塊優(yōu)先于構(gòu)造方法執(zhí)行)
}
2)以下程序可以運(yùn)行:
public?class?Test?{
static?int?a;?//在類(lèi)體中聲明整型靜態(tài)變量a。
public?static?void?main(String[]?args)?{
a=3;?//在方法中對(duì)靜態(tài)變量a賦值。
System.out.println("a="+a);
}
}
3)以下程序也不可以運(yùn)行,會(huì)報(bào)錯(cuò):
public class hello {
int a; //在類(lèi)體中聲明整型實(shí)體變量a。
public static void main(String[] args) {
a=3; //在方法中對(duì)實(shí)體變量a賦值。
System.out.println("a="+a);
}
}
二、成員變量可以在類(lèi)體中聲明同時(shí)進(jìn)行賦值,如 靜態(tài)變量:static int a=3; 實(shí)例變量:int b=5;
如:
public class Test {
static int a=3; //在類(lèi)體中聲明整型靜態(tài)變量a并賦初值。
int b=5; //在類(lèi)體中聲明整型實(shí)體變量b并賦初值。
public static void main(String[] args) {
System.out.println("a+b="+(a+b));
}
}
三、所有變量(包括成員變量)均不能以這種形式聲明并賦值變量(無(wú)論在類(lèi)體中還是在方法
int a=b=3;
1
譯系統(tǒng)認(rèn)為 b 沒(méi)有被聲明何種數(shù)據(jù)類(lèi)型。
還有,在數(shù)據(jù)類(lèi)型轉(zhuǎn)換上,有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換(即強(qiáng)制類(lèi)型轉(zhuǎn)換),隱式轉(zhuǎn)換只能從高字節(jié)的數(shù)據(jù)類(lèi)型向低字節(jié)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換,這樣不會(huì)丟失原有數(shù)據(jù)的精確度,如果要將變量從低字節(jié)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成高字節(jié)的數(shù)據(jù)類(lèi)型,只能使用顯式轉(zhuǎn)換。如下:
short a=3;
int b=65537;
a=b;
則程序會(huì)報(bào)錯(cuò)。
而這樣:a=(short)b
就不會(huì)報(bào)錯(cuò)了。但有時(shí)會(huì)失去數(shù)據(jù)原有的精確性。如上,則a=1; 因?yàn)閍被b以低16位的位值賦值了。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ),Java全局變量之聲明與定義”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)