本文目錄一覽:
- 1、java 中,什麼是實例變量(Instance Variables)
- 2、JAVA中“成員變量”和“實例變量”一樣嗎?
- 3、java靜態變量的與實例變量的區別
- 4、java中類變量、實例變量和局部變量有何區別?
java 中,什麼是實例變量(Instance Variables)
實例變量就是實例化該類對象才調用的非靜態變量!
class A{
int i;//實例變量
public void mack() {
int m =1;//局部變量
}
}
單你new 一個A的對象的時候!對象就會在內存中為i分配一個內存!你就可以調用該變量!單你調用mack方法時候才會為m分配內存進行調用!
JAVA中“成員變量”和“實例變量”一樣嗎?
不一樣的,例如
public
class
A{
String
id;
//實例變量
private
String
Tel;
//實例變量
private
int
size;
//實例變量
private
static
String
depart;
//類變量
final
String
design=”樣式”;
//常量
}
其中實例變量、類變量、常量都是屬於成員變量的,成員變量又被稱為全局變量,
成員變量的範圍比實例變量更寬泛
java靜態變量的與實例變量的區別
java類的成員變量有倆種:一種是被static關鍵字修飾的變量,叫類變量或者靜態變量;另一種沒有static修飾,為實例變量。
1、在語法定義上的區別:
靜態變量前要加static關鍵字,而實例變量前則不加。
2、在程序運行時的區別:
實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
舉例說明:
對於下面的程序,無論創建多少個實例對象,永遠都只分配了一個staticVar變量,並且每創建一個實例對象,這個staticVar 就會加1;但是,每創建一個實例對象,就會分配一個instanceVar,即可能分配多個instanceVar,並且每個instanceVar的值都只自加了1次。
類的靜態變量在內存中只有一個,java虛擬機在加載類的過程中為靜態變量分配內存,靜態變量位於方法區,被類的所有實例共享。靜態變量可以直接通過類名進行訪問,其生命周期取決於類的生命周期。
而實例變量取決於類的實例。每創建一個實例,java虛擬機就會為實例變量分配一次內存,實例變量位於堆區中,其生命周期取決於實例的生命周期。
結果為:
1
0 (成員變量具有缺省值 而局部變量則沒有)
把代碼改為:
結果則為:
1
java中類變量、實例變量和局部變量有何區別?
類變量:\x0d\x0a比較特殊的實例變量,用static修飾的,一個類共用這個變量,所有由這類生成的對象都共用這個變量,類裝載時就分配存儲空間。一個對象修改了變量,則所以對象中這個變量的值都會發生改變。\x0d\x0a \x0d\x0a實例變量:\x0d\x0a從屬於類,由類生成對象時,才分配存儲空間,各對象間的實例變量互不干擾,能通過對象的引用來訪問實例變量。\x0d\x0a \x0d\x0a局部變量:\x0d\x0a方法中或者某局部塊中聲明定義的變量或方法的參數被稱為局部變量
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/192988.html