关于值传递与引用传递

Java中变量有以下两种:
1.基本类型变量:包括char,byte,short,int,long,float,double,boolean.
2.引用类型变量:包括类,接口,数组(基本类型数组和对象数组).

public class ParamTest {

//初始值为0
protected int num=0;

//String初始值
String str="1234";

//为方法参数重新赋值
public void change(int i)
{
i=5;
}
public void change(String str)
{
str="4556";
}

//为方法参数重新赋值
public void change(ParamTest t)
{
ParamTest tmp=new ParamTest();
tmp.num=9;
tmp.str="对象改变";
t=tmp;
}
//改变方法参数的值
public void add(int i)
{
i+=10;
}
//改变方法参数属性的值
public void add(ParamTest t)
{
t.num+=20;
t.str="welcome";
}
public static void main(String[] args) {

ParamTest t=new ParamTest();
System.out.println("参数-基体类型");
System.out.println("原有的值:"+t.num);

//为基本类型参数重新赋值
t.change(t.num);
System.out.println("赋值之后:"+t.num);

t.change(t.str);
System.out.println("String改变之后:"+t.str);

//为引用类型参数重新赋值
t.change(t);
System.out.println("运算之后:"+t.num);
System.out.println("运算之后:"+t.str);

//基本类参数改变
t.add(t.num);
System.out.println("改变之后:"+t.num);

//引用参数改变
t.add(t);
System.out.println("引用改变之后:"+t.num);
System.out.println("引用改变之后" + t.str);

}
}


这一段代码详细说明了值传递与引用传递的关系.值传递只是Copy了过去.所做的动作与真正的值与关.而引用传递是地址上的变化.所以有相应的影响

[color=blue]参数-基体类型
原有的值:0
赋值之后:0
String改变之后:1234
运算之后:0
运算之后:1234
改变之后:0
引用改变之后:20
引用改变之后welcome[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值