Java方法传参的值传递和引用传递的区别(code)
2017-06-16 05:00
399 查看
/**
* 通过参数数据类型来说明值传递和引用传递的区别
* @author Rick
*
*/
class TestObject {
String name;
int age;
}
public class DeliverValOrAddrInMethod {
private void devilerFunc(int parm$1, TestObject eg) {
parm$1 = 88;
eg.age = 60;
}
public static void main(String[] args) {
//对象实例化,以调用函数devilerFunc
DeliverValOrAddrInMethod di = new DeliverValOrAddrInMethod();
//对象实例化,以设置属性并作为参数传参
TestObject t = new TestObject();
t.age = 10;
t.name = "Jason";
//定义参数的初始值
int parm$1 = 99;
System.out.println("传参前: parm$1 = " + parm$1);
System.out.println("传参前: name = " + t.name + " age = " + t.age);
di.devilerFunc(1,t);
//parm$1传递的是值,TestObject eg传递的是引用(地址),c里面是指针
System.out.println("传参后: parm$1 = " + parm$1);
System.out.println("传参后: name = " + t.name + " age = " + t.age);
}
}
结果:
传参前: parm$1 = 99
传参前: name = Jason age = 10
传参后: parm$1 = 99
传参后: name = Jason age = 60
* 通过参数数据类型来说明值传递和引用传递的区别
* @author Rick
*
*/
class TestObject {
String name;
int age;
}
public class DeliverValOrAddrInMethod {
private void devilerFunc(int parm$1, TestObject eg) {
parm$1 = 88;
eg.age = 60;
}
public static void main(String[] args) {
//对象实例化,以调用函数devilerFunc
DeliverValOrAddrInMethod di = new DeliverValOrAddrInMethod();
//对象实例化,以设置属性并作为参数传参
TestObject t = new TestObject();
t.age = 10;
t.name = "Jason";
//定义参数的初始值
int parm$1 = 99;
System.out.println("传参前: parm$1 = " + parm$1);
System.out.println("传参前: name = " + t.name + " age = " + t.age);
di.devilerFunc(1,t);
//parm$1传递的是值,TestObject eg传递的是引用(地址),c里面是指针
System.out.println("传参后: parm$1 = " + parm$1);
System.out.println("传参后: name = " + t.name + " age = " + t.age);
}
}
结果:
传参前: parm$1 = 99
传参前: name = Jason age = 10
传参后: parm$1 = 99
传参后: name = Jason age = 60
相关文章推荐
- java方法的参数是值传递,区别于引用传递的概念
- java 之方法调用 方法传参 值传递还是引用传递字节码
- java引用传递和对象传递的区别(对象在方法中传递时,仅仅传的是地址的副本)
- java 方法传参是引用传递还是值传递
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 在Java中方法参数的传递,对象是传递引用
- java面试题解惑:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- java的方法调用,参数是按值传递还是按引用传递
- Java的引用传递与C#的引用传递的区别
- 第2章 Java编程基础——FAQ2.14 变量之间传值时可分为值传递和引用传递, 那么它们有何区别?
- java中的值传递和引用传递的区别分析
- 深入理解Java的方法调用一(值传递和引用传递)
- C++和JAVA中一些区别,包括指向子类的引用会调用谁的方法,子类构造函数自动调用父类构造函数时,父构造会调用的谁方法
- java 中值传递与引用传递以及方法中别名的问题
- Java 把对象作为参数传到一个方法里,这个是值传递还是引用传递, 为什么结果这么怪?
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- Java中按值传递与按引用传递的区别
- Java面试题- java中函数传参传递的是引用的拷贝
- Java中方法调用参数传递的方式是传值,尽管传的是引用的值而不是对象的值。(Does Java pass by reference or pass by value?)
- java中传递基础数据类型值与传递数组引用变量给方法的不同之处