java中传值_一个实例介绍——java中的参数传递(传值、传引用)

本文通过实例代码详细介绍了Java中参数传递的区别,包括基本类型的传值和对象引用的传值。在传值函数中,基本类型参数在函数内部的改变不会影响到外部;而在传引用函数中,对象属性的改变会直接影响到原始对象。
摘要由CSDN通过智能技术生成

package calculate;

class Test{

int val1;

int val2;

Test(int i1, int i2){

val1 = i1;

val2 = i2;

}

}

public class Demo {

Test test1;

Test test2;

public static void main(String[] args) {

Demo demo = new Demo();

demo.test1 = new Test(1, 2);

demo.test2 = new Test(3, 4);

int i1 = 5;

int i2 = 6;

System.out.println("初始值如下:");

System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);

System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);

System.out.println("i1 = " + i1);

System.out.println("i2 = " + i2);

System.out.println("测试如下:");

System.out.println("传值函数(1种情况)");

demo.fun1(i1, i2);

System.out.println("i1 = " + i1);

System.out.println("i2 = " + i2);

System.out.println("传引用函数(2种情况)");

System.out.println("1、交换两个对象引用");

demo.fun2(demo.test1, demo.test2);

System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);

System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);

System.out.println("1、修改对象引用的属性");

demo.fun3(demo.test1, demo.test2);

System.out.println("demo.test1 = " + demo.test1.val1 + ", " + demo.test1.val2);

System.out.println("demo.test2 = " + demo.test2.val1 + ", " + demo.test2.val2);

}

void fun1(int int1, int int2){

int1 = 4;

int2 = 3;

}

void fun2(Test t1, Test t2){

Test temp;

temp = t1;

t2 = t1;

t2 = temp;

}

void fun3(Test t1, Test t2){

t1.val1 = 0;

t1.val2 = 0;

t2.val1 = 0;

t2.val2 = 0;

}

}

结果如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值