java中類變數
⑴ java 類變數和成員變數怎麼理解
1、成員變數:定義在類中,攔擾方法體之外。變數在創建對象時實例化。成員變數可被類中的方法、構造方法以及特定類的語句塊訪問。示例如下:
public class ClassName{
int a;
public void printNumber(){// 其他代碼}
}
2、類變數:定義在類中,方法體之外,但必須要有 static 來聲明變數類型。靜態成員屬於整個類,可通過對象名或類名來調用。
public class ClassName{
static int a;
public void printNumber(){// 其他代碼}
}
(1)java中類變數擴展閱讀:
成員變數和類變數的區別:
1、兩個變數的生命周期不同
成員變數隨著對象的創建而存在,隨著對象的回收而釋放。
靜態變數隨著類的載入而存在,隨著類的消失而消失。
2、調用譽衡讓方式不同
成員變數只能被對象調用。
靜態變數可以被對象調用,還可以被類名調用。
3、別名不同
成員變數也稱為實例變數。
靜態變數也稱為類變數。
4、數據存儲位置不同
成員變數存儲在堆內存的對象中,所以也叫對象的特有數據。
靜態變數數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共慶局享數據。
⑵ java中的成員變數、類變數,成員方法、類方法各是什麼
成員變數:成員變數是指定維度的成員變數,用於標識某個維度成員。由 Analysis Services 內部使用的值,以標識某個維度成員。MemberKeyColumn 屬性指定維度的成員變數。例如,1 到 12 之間的某個數字可以是相應於年中的某個月的成員變數。
類變數:在java中,類變數(也叫靜態變數)是類中獨立於方法之外的變數,用static 修飾。(static表示「全局的」、「靜態的」,用來修飾成員變數和成員方法,或靜態代碼塊(靜態代碼塊獨立於類成員,jvm載入類時會執行靜態代碼塊,每個代碼塊只執行一次,按順序執行))。
成員方法:類包括成員變數和方法兩部分。成員變數表示類的屬性,一數據域的形式表達,方法是數據的操作的定義。
在JAVA中,方法只能作為類的成員,也稱為成員方法。方法操作類所定義的數據,以及提供對數據的訪問的代碼。大多數情況下,程序的其他部分都是通過類的方法和其他類的實例進行交互的。
類方法:類方法這不是一個名詞,只是單純的類中描述的一個方法。加了static的方法,在程序中只運行一次,比如你兩次實例化對象了,但你實際上只調用了一次static標識的方法。
⑶ JAVA 類變數和成員變數怎麼理解
成員變數就是類中的屬性。當new對象的時候,每個對象都有一份屬性。一個對象中的屬性就是成員變數。在類內部,任何地方都可以訪問成員變數。類變數是被static修飾的屬性。作用范圍在類變數定義之後。
class Person{
//成員變數,實例變數
String name;
//靜態變數,類變數,所有對象共享的屬性用static修飾
static String country = "CN";
public void show(){
System. out.println(country + ":" + name); }}
class StaticDemo{
public static void main(String[]args){
Personp = new Person();
System. out.println(p.country); //可以用類名直接調用
System. out.println(Person.country); }}
(3)java中類變數擴展閱讀:
成員變數和類變數的區別:
1、兩個變數的生命周期不同
成員變數隨著對象的創建而存在,隨著對象的回收而釋放。
靜態變數隨著類的載入而存在,隨著類的消失而消失。
2、調用方式不同
成員變數只能被對象調用。
靜態變數可以被對象調用,還可以被類名調用。
3、數據存儲位置不同
成員變數存儲在堆內存的對象中,所以也叫對象的特有數據。
靜態變數數據存儲在方法區(共享數據區)的靜態區,所以也叫對象的共享數據。
⑷ java里類變數和實例變數的區別
每次創建一個類的對象的時候,系統為它創建了類的每一個實例變數的副本。我們就可以從對象中訪問該實例變數。
類變數或說靜態變數跟實例變數是不一樣的,不管為一個類創建了多少個對象,系統只為每個類變數分配一次存儲空間。系統為類變數分配的內存是在執行main方法時馬克-to-win, 就是在程序最最開始的時候(見下面StaticDemo的例子)。所有的對象共享了類變數。可以通過對象或者通過類本身來訪問類變數。
Staticfields
Afielddefineasstatic,
Instancefields
Afielddefinewithoutstatic,
順便提一句:通常用下面的形式,定義類的常量。(類或實例都可以訪問)
staticfinaldoublePI=3.14159;
靜態方法(方法前冠以static)和實例方法(前面未冠以static)的區別
調用靜態方法或說類方法時,可以使用類名做前綴,也可以使用某一個具體的對象名;通常使用類名。
非static的方法是屬於某個對象的方法,而static的方法是屬於整個類的,不被任何一個對象單獨擁有;
由於static方法是屬於整個類的,所以它不能操縱和處理屬於某個對象的成員變數,而只能處理屬於整個類的成員變數,也即,static方法只能處理static域或靜態方法。實例方法可以訪問實例域, 靜態域或靜態方法, 記住都行。
聲明為static的方法有以下幾條限制: 1.它們僅能調用其他的static方法。
2.它們只能訪問static數據。
3.它們不能以任何方式引用this或super(關鍵 字super與繼承有關,在下一章中描述)。
—this
So,
Static
methodcan』;itcanonlyinvoke
otherstaticclassmembers.Itcanaccessclassmembersonly.
instancecanusestaticmethod.
Instancemethods:
,
.Instancemethods
areassociatedwithobjects–notclasses.
.
classStaticExa{
staticinta=4;
staticintb=9;
staticvoidcall(){
System.out.println("a="+a);//靜態方法可以訪問靜態屬性
}
}
publicclassTest{
staticintc=43;
publicstaticvoidmain(Stringargs[]){
/*剛運行到這一步時,debug觀察,StaticExa.a的值就等於42,Test.c的值就等於43,
說明系統在我們的程序一開始時,就會給所有的類變數賦值。如果是對象參考,就是null,
見photoshop的例子*/
System.out.println("開始觀察StaticExa.a和Test.c");
詳情網上找「馬克-to-win」,參考他的網站或他的網路空間:java第2章的內容