四、再談變量-創(chuàng)新互聯(lián)

1:實例變量和局部變量                                                             四、再談變量

在方法外定義的變量主要是實例變量,它們是在使用 new Xxxx ()創(chuàng)建一個對象時被分

創(chuàng)新互聯(lián)長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為共和企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),共和網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

配內(nèi)存空間的。每當(dāng)創(chuàng)建一個對象時,系統(tǒng)就為該類的所有實例變量分配存儲空間;創(chuàng)建多

個對象就有多份實例變量。通過對象的引用就可以訪問實例變量。

在方法內(nèi)定義的變量或方法的參數(shù)被稱為局部(local)變量,有時也被用為自動(automatic) 、臨時(temporary)或棧(stack)變量。

   方法參數(shù)變量定義在一個方法調(diào)用中傳送的自變量, 每次當(dāng)方法被調(diào)用時, 一個新的變量就被創(chuàng)建并且一直存在到程序的運行跳離了該方法。 當(dāng)執(zhí)行進入一個方法遇到局部變量的聲明語句時, 局部變量被創(chuàng)建, 當(dāng)執(zhí)行離開該方法時,局部變量被取消,也就是該方法結(jié)束時局部變量的生命周期也就結(jié)束了。 因而,局部變量有時也被引用為“臨時或自動”變量。在成員方法內(nèi)定義的變量對該成員變量是“局部的” ,因而,你可以在幾個成員方法中使用相同的變量名而代表不同的變量。

該方法的應(yīng)用如下所示:

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()方法結(jié)束

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 程序中,任何變量都必須經(jīng)初始化后才能被使用。當(dāng)一個對象被創(chuàng)建時,實例變量在分配內(nèi)存空間時按程序員指定的初始化值賦值,否則系統(tǒng)將按下列默認值進行初始化:

byte 0

short 0

int 0

long 0L

float 0.0f

double 0.0d

char 'u0000'

boolean false

所有引用類型

null

注意── 一個具有空值“null”的引用不引用任何對象。試圖使用它引用的對象將會引起一個異常。異常是出現(xiàn)在運行時的錯誤,這將在模塊“異?!敝杏懻?。

在方法外定義的變量被自動初始化。局部變量必須在使用之前做“手工”(由程序員進行)初始化。 如果編譯器能夠確認一個變量在初始化之前可能被使用的情形, 編譯器將報錯。

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) :類級變量又稱全局級變量,在對象產(chǎn)生之前就已經(jīng)存在,就是后面會學(xué)到的 static

變量。

(2) :對象實例級,就是前面學(xué)到的屬性變量。

(3) :方法級:就是在方法內(nèi)部定義的變量,就是前面學(xué)到的局部變量。

(4) :塊級:就是定義在一個塊內(nèi)部的變量,變量的生存周期就是這個塊,出了這個塊就消失了。

示例如下:

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;//塊級

} //這里不能訪問塊級的變量,塊級變量只能在塊內(nèi)部訪問

System.out.println("name="+name+",i="+i+",j="+j);

}

public static void main(String[] args) {

Test t = new Test();

t.test1();

}

}

運行結(jié)果:

name=Java 私塾,i=0,j=3

3.1:訪問說明

(1) :方法內(nèi)部除了能訪問方法級的變量,還可以訪問類級和實例級的變量

(2) :塊內(nèi)部能夠訪問類級、實例級變量,如果塊被包含在方法內(nèi)部,它還可以訪問方法級

的變量。

(3)變量當(dāng)然是要在被訪問前被定義和初始化,不能訪問后面才定義的變量。

分享標(biāo)題:四、再談變量-創(chuàng)新互聯(lián)
當(dāng)前地址:http://muchs.cn/article30/dcodso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、做網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站排名、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管