編程基礎(chǔ),Java全局變量之聲明與定義

編程基礎(chǔ),Java全局變量之聲明與定義

長沙達(dá)內(nèi)教育      2022-05-05 10:07:01     73

編程基礎(chǔ),Java全局變量之聲明與定義,Java全局變量(或稱成員變量)可分兩種,一種是靜態(tài)變量,另一種是實例變量,即在類體中定義的變量,有三點得注意:一、成員變量

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹

Java全局變量(或稱成員變量)可分兩種,一種是靜態(tài)變量,另一種是實例變量,即在類體中定義的變量,有三點得注意:

一、成員變量不能在類體中先聲明(定義)后賦值,但靜態(tài)變量可以先在類體中聲明,然后在方法中賦值(當(dāng)然實例變量是不行的);

1)如以下程序會出問題:

public?class?Test?{  static?int?a;?//在類體中聲明整型靜態(tài)變量a?! nt?b;?//在類體中聲明整型實體變量b?! =3;?//在類體中對靜態(tài)變量a賦初值?! =5;?//在類體中對實體變量b賦初值?! ublic?static?void?main(String[]?args)?{    System.out.println("a+b="+(a+b));  }}

java中全局變量為什么不能先聲明再賦值?

public?class?Test{  int?b;  b=5;}

為什么這種先聲明后賦值是錯誤?什么機(jī)制導(dǎo)致的?

那是因為i=3這是賦值語句,不能單獨出現(xiàn)在方法或{}以外的地方

改成

public?class?Test{  int?i;  {i?=?3;}?//寫在{}里就可以了(這種代碼塊優(yōu)先于構(gòu)造方法執(zhí)行)}
2)以下程序可以運行:
public?class?Test?{  static?int?a;?//在類體中聲明整型靜態(tài)變量a。  public?static?void?main(String[]?args)?{    a=3;?//在方法中對靜態(tài)變量a賦值?!   ystem.out.println("a="+a);  }}

3)以下程序也不可以運行,會報錯:

public class hello {  int a; //在類體中聲明整型實體變量a?! ublic static void main(String[] args) {    a=3; //在方法中對實體變量a賦值?!   ystem.out.println("a="+a);  }}

二、成員變量可以在類體中聲明同時進(jìn)行賦值,如 靜態(tài)變量:static int a=3; 實例變量:int b=5;

如:

public class Test {  static int a=3; //在類體中聲明整型靜態(tài)變量a并賦初值。  int b=5; //在類體中聲明整型實體變量b并賦初值。  public static void main(String[] args) {    System.out.println("a+b="+(a+b));  }}

三、所有變量(包括成員變量)均不能以這種形式聲明并賦值變量(無論在類體中還是在方法

int a=b=3;1

譯系統(tǒng)認(rèn)為 b 沒有被聲明何種數(shù)據(jù)類型。

還有,在數(shù)據(jù)類型轉(zhuǎn)換上,有隱式轉(zhuǎn)換和顯式轉(zhuǎn)換(即強(qiáng)制類型轉(zhuǎn)換),隱式轉(zhuǎn)換只能從高字節(jié)的數(shù)據(jù)類型向低字節(jié)的數(shù)據(jù)類型轉(zhuǎn)換,這樣不會丟失原有數(shù)據(jù)的精確度,如果要將變量從低字節(jié)的數(shù)據(jù)類型轉(zhuǎn)換成高字節(jié)的數(shù)據(jù)類型,只能使用顯式轉(zhuǎn)換。如下:

short a=3;int b=65537;a=b;則程序會報錯。而這樣:a=(short)b

就不會報錯了。但有時會失去數(shù)據(jù)原有的精確性。如上,則a=1; 因為a被b以低16位的位值賦值了。

以上就是長沙達(dá)內(nèi)教育java培訓(xùn)機(jī)構(gòu)的小編針對“編程基礎(chǔ),Java全局變量之聲明與定義”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。