芯靈思SinlinxA33開(kāi)發(fā)板安卓開(kāi)發(fā)-java語(yǔ)言基礎(四)
從抽象到類(lèi)
參數傳值:方法中最重要的部分之一就是方法的參數,參數屬于局部變量,當對象調用方法時(shí),參數被分配內存空間,并要求調用者向參數專(zhuān)遞值,即方法被調用時(shí),參數變量必須有具體的值
傳值機制:在Java中,方法的所有參數都是“傳值”的,也就是說(shuō),方法中參數變量的值是調用者指定的值的拷貝。例如,如果向方法的int型參數x傳遞一個(gè)int值,那么參數x得到的值是傳遞的值的拷貝。
基本數據類(lèi)型的傳值:對于基本數據類(lèi)型的參數,向該參數傳遞的值的級別不可以高于該參數的級別 。
引用類(lèi)型參數的傳值:當參數是引用類(lèi)型時(shí),“傳值”傳遞的是變量中存放的“引用”,而不是變量所引用的實(shí)體。
可變參數:可變參數是指在聲明方法時(shí)不給出參數列表中從某項直至最后一項參數的名字和個(gè)數,但這些參數的類(lèi)型必須相同??勺儏凳褂?/span>“…”表示若干個(gè)參數,這些參數的類(lèi)型必須相同,最后一個(gè)參數必須是參數列表中的最后一個(gè)參數。例如: public void f(int … x) 那么,方法f的參數列表中,從第1個(gè)至最后一個(gè)參數都是int型,但連續出現的int型參數的個(gè)數不確定。稱(chēng)x是方法f的參數列表中的可變參數的“參數代表”。
參數代表可以通過(guò)下標運算來(lái)表示參數列表中的具體參數,即x[0],x[1]…x[m]分別表示x代表的第1個(gè)至第m個(gè)參數
實(shí)例成員與類(lèi)成員:
實(shí)例變量和類(lèi)變量的聲明:在之前的學(xué)習類(lèi)的時(shí)候我們知道類(lèi)體中包括成員變量的聲明和方法的定義,而成員變量又可以細分為實(shí)例變量和類(lèi)變量。在聲明成員變量時(shí),用關(guān)鍵字static給予修飾的稱(chēng)作類(lèi)變量,否則稱(chēng)作實(shí)例變量(類(lèi)變量也稱(chēng)為static變量,靜態(tài)變量)。
class Dog {
float x; //實(shí)例變量
static int y; //類(lèi)變量
}
實(shí)例變量和類(lèi)變量的區別:1.不同對象的實(shí)例變量互不相同
我們已經(jīng)知道,一個(gè)類(lèi)通過(guò)使用new運算符可以創(chuàng )建多個(gè)不同的對象,這些對象將被分配不同的成員變量。再準確的說(shuō),就是分配給不同對象的實(shí)例變量占有不同的內存空間,改變其中一個(gè)對象的實(shí)例變量不會(huì )影響其他對象的實(shí)例變量。
2.所有對象共享類(lèi)變量
如果類(lèi)中有類(lèi)變量,當使用new運算符創(chuàng )建多個(gè)不同的對象時(shí),分配給這些對象的類(lèi)變量占有相同的一處內存,改變其中一個(gè)對象的類(lèi)變量就會(huì )影響其他對象的類(lèi)變量。
3.通過(guò)類(lèi)名直接訪(fǎng)問(wèn)類(lèi)變量
當Java程序執行時(shí),類(lèi)的字節碼文件被加載到內存中,如果該類(lèi)還沒(méi)有創(chuàng )建對象,那么類(lèi)中的實(shí)例變量就不會(huì )被分配內存。但是,類(lèi)中的類(lèi)變量,在該類(lèi)被加載到內存中時(shí),就分配了相應的內存空間。如果該類(lèi)創(chuàng )建對象,那么不同對象的實(shí)例變量互不相同,即分配不同的內存空間,但是類(lèi)變量就不再重新分配內存,所有的對象共享類(lèi)變量,即所有的對象的類(lèi)變量是相同的一處內存空間,類(lèi)變量的內存空間直到程序退出運行,才會(huì )釋放所占有的內存。
實(shí)例方法和類(lèi)方法的定義:類(lèi)中的方法也可分為實(shí)例方法和類(lèi)方法。方法聲明時(shí),方法類(lèi)型前面不加關(guān)鍵字static修飾的是實(shí)例方法、加static關(guān)鍵字修飾的是類(lèi)方法(靜態(tài)方法)。
class A {
int a;
float max(float x,float y) { //實(shí)例方法
…
}
static float jerry() { //類(lèi)方法
…
}
static void speak(String s) { //類(lèi)方法
…
}
}
實(shí)例方法和類(lèi)方法的區別:1.對象調用實(shí)例方法
當對象調用實(shí)例方法時(shí),該方法中出現的實(shí)例變量就是分配給該對象的實(shí)例變量;該方法中出現的類(lèi)變量也是分配給該對象的變量,只不過(guò)這個(gè)變量和所有的其他對象共享而已。
2.類(lèi)名調用類(lèi)方法
類(lèi)方法不僅可以被類(lèi)創(chuàng )建的任何對象調用執行,也可以直接通過(guò)類(lèi)名調用。和實(shí)例方法不同的是,類(lèi)方法不可以操作實(shí)例變量,這是因為在類(lèi)創(chuàng )建對象之前,實(shí)例成員變量還沒(méi)有分配內存。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。
高通濾波器相關(guān)文章:高通濾波器原理