5.参数传递

来源:互联网 发布:淘宝蛋蛋家全名 编辑:程序博客网 时间:2024/05/28 09:31

例3-10

public class CallByValueAndRef {int a,b;CallByValueAndRef(int i, int j){a = i;b = j;}void changByValue(int n){n+=10;System.out.println("在changByValue方法中n="+n);}void changByRef(CallByValueAndRef obj){obj.a = 50;obj.b = 40;System.out.println("在changByRef中 obj.a=" + obj.a+",obj.b="+obj.b);}public static void main(String[] args) {int x = 5;CallByValueAndRef obj = new CallByValueAndRef(15,20);System.out.println("调用changByValue方法前x="+x);obj.changByValue(x);System.out.println("调用changByValue方法后x="+x);System.out.println("调用changByRef前 obj.a=" + obj.a+",obj.b="+obj.b);obj.changByRef(obj);System.out.println("调用changByRef后 obj.a=" + obj.a+",obj.b="+obj.b);}}
运行结果:

调用changByValue方法前x=5在changByValue方法中n=15调用changByValue方法后x=5调用changByRef前 obj.a=15,obj.b=20在changByRef中 obj.a=50,obj.b=40调用changByRef后 obj.a=50,obj.b=40


0 0