色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 值傳遞 和類傳遞

Java中傳遞參數(shù)時(shí)有兩種方式,分別是值傳遞和類傳遞。

值傳遞指的是將參數(shù)的值拷貝一份,傳遞給方法或函數(shù),屬于一種單向傳遞。這種傳遞方式在Java中使用較多。

public static void main(String[] args) {
int a = 10;
System.out.println("處理前a的值:" + a);
changeValue(a);
System.out.println("處理后a的值:" + a);
}
private static void changeValue(int a) {
a = 20;
System.out.println("changeValue方法中a的值:" + a);
}

在以上代碼中,通過調(diào)用changeValue方法改變了a的值,但是輸出結(jié)果卻沒有改變。這是因?yàn)樵赾hangeValue方法中改變的a是一個(gè)新的變量,與main方法中的a并不是同一個(gè)變量。

類傳遞指的是將參數(shù)引用傳遞給方法或函數(shù),可以將方法內(nèi)部對(duì)參數(shù)的任何修改,反映到調(diào)用其的方法中。

public static void main(String[] args) {
MyClass mc = new MyClass();
System.out.println("處理前MyClass中a的值:" + mc.a);
changeValue(mc);
System.out.println("處理后MyClass中a的值:" + mc.a);
}
private static void changeValue(MyClass mc) {
mc.a = 20;
System.out.println("changeValue方法中MyClass中a的值:" + mc.a);
}
private static class MyClass {
public int a = 10;
}

在以上代碼中,MyClass類型被定義成內(nèi)部類的形式。通過調(diào)用changeValue方法改變了mc對(duì)象中a的值,輸出結(jié)果也相應(yīng)改變。