public static void main(String[] args) {
//對基本類型的調用
int num = 5;
System.out.println("基本類型值傳入方法前是:" + num);
primitiveDeliver(num);
System.out.println("基本類型值傳入方法後是:" + num);
System.out.println("----------------------");
//對引用類型的調用。
Demo demo = new Demo("張三");
System.out.println("引用類型傳入方法前的值:" + demo);
referenceDeliver(demo);
System.out.println("引用類型傳入方法後的值:" + demo);
}
public static void primitiveDeliver(int n){
n += 2;
System.out.println("變量在方法內處理後的值是:" + n);
}
public static void referenceDeliver(Demo demo){
demo = new Demo("李四");
System.out.println(demo);
}
}
class Demo{
//表示該對象的成員變量
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//傳遞給該對象當前對象的名字
public Demo(String name){
this.name = name;
}
//重寫toString方法方便顯式顯式該對象的名字。
public String toString(){
return name;
}
}</span>
總結:
1.對於基本類型的變量,傳遞給方法,方法內部改變了變量的值。但是在方法外部顯示的仍然是變量原來的值而不是方法處理過的值。所以基本類型傳遞的是變量的複製。即值傳遞。
2.對於引用類型的變量。他傳遞給方法的是該對象的索引,方法內部改變該引用指向的對象並不會改變該原來的對象。所以對於引用類型的變量傳遞的是該引用的複製。而不是傳遞引用的引用。所以對於引用傳遞的仍然是引用的值傳遞。