值传递和引用传递
值传递:
就是实参把它的实际值传递给形参,而传入的参数存放在栈中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
举例:
public class test {
static String Gypsy;
public String change(String Gypsy){
Gypsy = "浪漫";
return Gypsy;
}
public static void main(String[] args) {
test test = new test();
Gypsy = "流浪";
test.change(Gypsy);
System.out.println(Gypsy);
}
}
运行结果:
流浪
结论:传递的只是一个值,所以它实际的值并没有变化。
引用传递:
在方法调用时,实参的地址通过方法调用被传递给相应的形参,在方法体内,形参和实参指向通愉快内存地址,对形参的操作会影响的真实内容。
public class test {
static String Gypsy;
public test(){
}
public test(String gypsy) {
this.Gypsy = gypsy;
}
public String getGypsy() {
return Gypsy;
}
public void setGypsy(String gypsy) {
this.Gypsy = gypsy;
}
public test change(test Gypsy){
Gypsy.setGypsy("浪漫");
return Gypsy;
}
public static void main(String[] args) {
Gypsy = "流浪";
test test = new test(Gypsy);
test.change(test);
System.out.println(Gypsy);
}
}
运行结果:
浪漫
结论:传递的是一个对象,所以指向的是同一个地址,所以形参的操作会改变实参对象的改变。