在方法外定義的變量主要是實例變量,它們是在使用 new Xxxx ()創建一個對象時被分
創新互聯長期為近千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為共和企業提供專業的成都網站設計、網站建設、外貿網站建設,共和網站改版等技術服務。擁有10年豐富建站經驗和眾多成功案例,為您定制開發。配內存空間的。每當創建一個對象時,系統就為該類的所有實例變量分配存儲空間;創建多
個對象就有多份實例變量。通過對象的引用就可以訪問實例變量。
在方法內定義的變量或方法的參數被稱為局部(local)變量,有時也被用為自動(automatic) 、臨時(temporary)或棧(stack)變量。
方法參數變量定義在一個方法調用中傳送的自變量, 每次當方法被調用時, 一個新的變量就被創建并且一直存在到程序的運行跳離了該方法。 當執行進入一個方法遇到局部變量的聲明語句時, 局部變量被創建, 當執行離開該方法時,局部變量被取消,也就是該方法結束時局部變量的生命周期也就結束了。 因而,局部變量有時也被引用為“臨時或自動”變量。在成員方法內定義的變量對該成員變量是“局部的” ,因而,你可以在幾個成員方法中使用相同的變量名而代表不同的變量。
該方法的應用如下所示:
public class Test {
private int i; // Test類的實例變量
public int firstMethod() {
int j = 1; // 局部變量
// 這里能夠訪問i和j
System.out.println("firstMethod 中 i="+i+",j="+j);
return 1;
} // firstMethod()方法結束
public int secondMethod(float f) { //method parameter
int j = 2; //局部變量,跟firstMethod()方法中的j是不同的
// 這個j的范圍是限制在secondMethod()中的
// 在這個地方,可以同時訪問i,j,f
System.out.println("secondMethod 中 i="+i+",j="+j+",f="+f);
return 2;
}
public static void main(String[] args) {
Test t = new Test();
t.firstMethod();
t.secondMethod(3);
}
}
2:變量初始化
在 Java 程序中,任何變量都必須經初始化后才能被使用。當一個對象被創建時,實例變量在分配內存空間時按程序員指定的初始化值賦值,否則系統將按下列默認值進行初始化:
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char 'u0000'
boolean false
所有引用類型
null
注意── 一個具有空值“null”的引用不引用任何對象。試圖使用它引用的對象將會引起一個異常。異常是出現在運行時的錯誤,這將在模塊“異常”中討論。
在方法外定義的變量被自動初始化。局部變量必須在使用之前做“手工”(由程序員進行)初始化。 如果編譯器能夠確認一個變量在初始化之前可能被使用的情形, 編譯器將報錯。
public class Test {
private int i; //Test類的實例變量
public void test1() {
int x = (int) (Math.random() * 100);
int y;
int z;
if (x > 50) {
y = 9;
}
z = y + x; // 將會引起錯誤,因為y可能還沒有被初始化就使用了
}
public static void main(String[] args) {
Test t = new Test();
t.test1();
}
}
3:變量的范圍(scope)
Java 變量的范圍有四個級別:類級、對象實例級、方法級、塊級
(1) :類級變量又稱全局級變量,在對象產生之前就已經存在,就是后面會學到的 static
變量。
(2) :對象實例級,就是前面學到的屬性變量。
(3) :方法級:就是在方法內部定義的變量,就是前面學到的局部變量。
(4) :塊級:就是定義在一個塊內部的變量,變量的生存周期就是這個塊,出了這個塊就消失了。
示例如下:
public class Test {
private static String name="Java私塾";//類級
private int i; // 對象實例級,Test類的實例變量
{//屬性塊,在類初始化屬性時候運行
int j = 2;//塊級
}
public void test1() {
int j = 3;//方法級
if(j==3){
int k = 5;//塊級
} //這里不能訪問塊級的變量,塊級變量只能在塊內部訪問
System.out.println("name="+name+",i="+i+",j="+j);
}
public static void main(String[] args) {
Test t = new Test();
t.test1();
}
}
運行結果:
name=Java 私塾,i=0,j=3
3.1:訪問說明
(1) :方法內部除了能訪問方法級的變量,還可以訪問類級和實例級的變量
(2) :塊內部能夠訪問類級、實例級變量,如果塊被包含在方法內部,它還可以訪問方法級
的變量。
(3)變量當然是要在被訪問前被定義和初始化,不能訪問后面才定義的變量。
分享標題:四、再談變量-創新互聯
當前地址:http://vcdvsql.cn/article30/dcodso.html
成都網站建設公司_創新互聯,為您提供軟件開發、做網站、企業網站制作、網站建設、網站排名、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯