Java方法的参数传递

利用方法参数做到和做不到的几种情况:

1 方法不能修改基本数据类型(即数字或布尔值)的参数

2方法可以改变对象参数的状态

3方法不能使一个对象参数指向新的对象

public class Test1 {

	public Test1(String name,String sex) {
		// TODO Auto-generated constructor stub
		this.name=name;
		this.sex=sex;
	}
	private String name;
	private String sex;
	public static void main(String[]args)
	{
	   Test1	 A=new Test1("cxd", "nan");
	   Test1	 B=new Test1("dai", "NAN");
	   System.out.println(A.name);
	   System.out.println(B.name);
            Test1 C=A;
            A=B;
            B=C;
            System.out.println(A.name);
            System.out.println(B.name);

上述方法可以成功交换A和B指向的内存空间中的数据

然而

public class Test1 {

	public Test1(String name,String sex) {
		// TODO Auto-generated constructor stub
		this.name=name;
		this.sex=sex;
	}
	private String name;
	private String sex;
	public static void main(String[]args)
	{
	    Test1	 A=new Test1("cxd", "nan");
	    Test1	 B=new Test1("dai", "NAN");
	    System.out.println(A.name);
	    System.out.println(B.name);
	    swap(A, B);
             System.out.println(A.name);
	    System.out.println(B.name);
	}
	static void swap(Test1 a,Test1 b){
		
		   Test1 c=new Test1("1","1");
		   c.name=a.name;
		   a.name=b.name;
		   b.name=c.name;
	}
}

上述方法也可以成功

然而下述方法不能成功

public class Test1 {

	public Test1(String name,String sex) {
		// TODO Auto-generated constructor stub
		this.name=name;
		this.sex=sex;
	}
	private String name;
	private String sex;
	public static void main(String[]args)
	{
	   Test1	 A=new Test1("cxd", "nan");
	   Test1	 B=new Test1("dai", "NAN");
	    System.out.println(A.name);
	    System.out.println(B.name);
	    swap(A, B);
             System.out.println(A.name);
	    System.out.println(B.name);
	}
	static void swap(Test1 a,Test1 b){
		
		   Test1 c=a;		
                     c.name=a.name;
		   a.name=b.name;
		   b.name=c.name;
	}
}

因为 在方法中Test1 c=a;不能够使用,利用的是上述注意方法的第三条

类的方法传值都是引用传值

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值