成員變數定義在類中,在整個類中都可以被訪問。
成員變數分為類成員變數和例項成員變數,例項變數存在於物件所在的堆記憶體中,類成員變數也叫靜態變數,存在於靜態域內。
成員變數有預設初始化值。
成員變數的許可權修飾符可以根據需要,選擇任意乙個。
區域性變數只定義在區域性範圍內,如:方法的形參,方法內的變數,**塊內的變數等。
區域性變數存在於棧記憶體中。
作用的範圍結束,變數空間會自動釋放。
區域性變數沒有預設初始化值,除形參外每次必須顯式初始化。
區域性變數宣告時不指定許可權修飾符。
基本型別
預設值boolean
false
int
0short
0byte
0char
'\u0000'
long
0lfloat
0.0f
double
0.0引用型別(陣列、物件...)
null
定義方法的引數是形式引數,即方法的引數列表
呼叫方法的引數是實在引數,即呼叫方法時傳遞的引數
呼叫方法時要求引數個數相同,型別相容
基本資料型別的引數傳遞,無法通過方法呼叫改變變數的值,change內修改的變數i.j並不是main方法裡的i,j
/*
* main方法定義的變數i,j沒有改變
*/public static void main(string args)
public static void change(int i,int j)
引用資料型別的引數傳遞,可以通過方法呼叫改變變數的值,因為呼叫change方法時是把p的引用賦給change方法的形參了,change方法內修改的是堆內的物件
public class test1
public static void change(point p)
}class point
public int geti()
public void seti(int i)
public int getj()
public void setj(int j)
}
java 形參 實參
實參 直接值傳遞 string 八大基礎資料型別 形參是定義方法的時候,該方法所攜帶的引數,不如說現在有乙個方法 public void printinfo string info 此處info就是乙個形參,它是string型別的。實參是你在呼叫方法的時候,給這個方法傳遞的引數值,比如說有這麼乙個語...
java形參實參
摘自 一 基本資料型別 傳值,方法不會改變實參的值。如int,string 二 物件型別引數 傳引用,方法體內改變形參引用,不會改變實參的引用 但有可能改變實參物件的屬性值 string陣列 1 方法體內改變形參引用,但不會改變實參引用 實參值不變。2 方法體內,通過引用改變了實際引數物件的內容,注...
形參 實參 用函式交換變數
起先看這段 覺得沒什麼問題,關於函式交換變數,後來才發現錯誤。特意寫出來,讓自己記住,以後不要再犯。錯誤 如下。這段 沒有任何編譯錯誤,但沒有得到預期想要的結果,就是交換兩個數值。大一上這樣的問題學了很多,形參和實參的問題,全域性變數和區域性變數。他們的位址沒有發生改變,還是按照主函式 a 3,b ...