您好,登錄后才能下訂單哦!
今天小編給大家分享一下在JAVA中全局變量如果聲明與定義的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在java中我們知道對于全局變量來說可以分為這兩種:靜態變量和實例變量;那么對于在類體中定義的變量我們需要注意這三點:
1、成員變量不可以在類體中先聲明之后在復制,但是在靜態變量中是可以先在類體中聲明之后在進行賦值的,當然我們的實例變量是不行的,我們來看看下面這個代碼:
public class Test {
static int a; //在類體中聲明整型靜態變量a。
int b; //在類體中聲明整型實體變量b。
a=3; //在類體中對靜態變量a賦初值。
b=5; //在類體中對實體變量b賦初值。
public static void main(String[] args) {
System.out.println("a+b="+(a+b));
}
}
對于這個程序我們是會出現問題,那么就有人會說為什么在 java 中全局變量不能先聲明在賦值了,我們來看下面的這個代碼:
public class Test{ int i; {i = 3;} //寫在{}里就可以了(這種代碼塊優先于構造方法執行)}
在代碼中i=3
這個是我們的賦值語句,不能單獨的出現在方法或者“{ }”
以外的地方,所以我們將代碼改成上面的樣式就可以了,我們在回過頭來看下面這個代碼就是可以運行的了:
public class Test {
static int a; //在類體中聲明整型靜態變量a。
public static void main(String[] args) {
a=3; //在方法中對靜態變量a賦值。
System.out.println("a="+a);
}
}
我們來對比一下如果沒有在類體中聲明靜態變量的話就會報錯,代碼如下所示:
public class hello {
int a; //在類體中聲明整型實體變量a。
public static void main(String[] args) {
a=3; //在方法中對實體變量a賦值。
System.out.println("a="+a);
}
}
2、成員變量可以在類體中聲明的時候同時賦值
我們來看下這個代碼就可以清楚的知道了,代碼如下所示:
public class Test {
static int a=3; //在類體中聲明整型靜態變量a并賦初值。
int b=5; //在類體中聲明整型實體變量b并賦初值。
public static void main(String[] args) {
System.out.println("a+b="+(a+b));
}
}
從代碼中我們可以了解到,在類體中進行賦值的方式,這樣還不容易出錯。
3、不可以連續賦值
先來看這串代碼:int a=b=3;
我們在變量中是不可以以這種形式聲明和賦值的不論是在類體中還是在方法中。因為在工具的譯系統中 b 是被認為沒有聲明任何數據類型的。不僅如此在數據的轉換中,分為隱式轉換和顯示轉換。
隱式轉換:
它是指智能從高字節的數據類型向低字節的數據類型進行轉換的,因為這樣不會丟失原有數據類型的精準度如果要將變量從我們的低字節的數據類型轉換成高字節的數據類型,這個時候我們只能使用顯示轉換,代碼如下所示:
short a=3;
int b=65537;
a=b;
對于這個方式程序是會出現報錯的,我們只有寫成:a=(short)b
這樣才不會報錯。但是對于這個方法的話有時候是會失去數據原有的精確性的。
以上就是“在JAVA中全局變量如果聲明與定義”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。