java byref_java中怎么区分按值传递和引用传递

下面是两个程序,第一个是按值传递,第二个是引用传递,请问给你个程序要怎么区分他是按值传递还是引用传递呢,或者说就是看哪些关键字区分呢……publicstaticvoidmain(String[]args)...

下面是两个程序,第一个是按值传递,第二个是引用传递,请问给你个程序要怎么区分他是按值传递还是引用传递呢,或者说就是看哪些关键字区分呢……

public static void main(String[] args) {

int num = 5;

System.out.println("调用change方法前 : " + num);

//创建一个CallByValue类型的对象

CallByValue callByValue = new CallByValue();

callByValue.change(num);

System.out.println("调用change方法后 : " + num);

}

/*定义change方法*/

public void change(int num) {

num += 5;

System.out.println("在change中 num的值为 : " + num);

-------------------------------------------------------------------------------

class CallByRef {

int a, b;

CallByRef(int i, int j) {

a = i;

b = j;

}

void change(CallByRef obj) {

obj.a = 50;

obj.b = 40;

System.out.println("在change方法中 obj.a=" + obj.a + ",obj.b=" + obj.b);

}

}

public class Test {

public static void main(String[] args) {

CallByRef obj = new CallByRef(15, 20);

System.out.println("调用change方法前 obj.a=" + obj.a + ",obj.b=" + obj.b);

obj.change(obj);

System.out.println("调用change方法后 obj.a=" + obj.a + ",obj.b=" + obj.b);

}

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值