<span style="font-size:14px;">public class Test {
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.对于引用类型的变量。他传递给方法的是该对象的索引,方法内部改变该引用指向的对象并不会改变该原来的对象。所以对于引用类型的变量传递的是该引用的复制。而不是传递引用的引用。所以对于引用传递的仍然是引用的值传递。