下面是两个程序,第一个是按值传递,第二个是引用传递,请问给你个程序要怎么区分他是按值传递还是引用传递呢,或者说就是看哪些关键字区分呢……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);
}
}
展开