个人备忘--值传递和引用传递的区别

package third;

public class MyTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Person p1=new Person(12);
		Person p2=new Person(23);
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);
		System.out.println("--------------------------------------------------");
		swap(p1, p2);
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);
		System.out.println("--------------------------------------------------");
		Person ptemp=p1;
		p1=p2;
		p2=ptemp;
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);

	}
	
	public static void swap(Person p1,Person p2)
	{
		Person ptemp=p1;
		p1=p2;
		p2=ptemp;
	}

	
	public static class Person{
		public int age;
		public Person(int age)
		{
			this.age=age;
		}
		@Override
		public String toString() {
			return "age:"+age;
		}
		
	}
}

运行结果:

1:age:12
2:age:23
--------------------------------------------------
1:age:12
2:age:23
--------------------------------------------------
1:age:23
2:age:12



package third;

public class MyTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Person p1=new Person(12);
		Person p2=new Person(23);
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);
		System.out.println("--------------------------------------------------");
		swap(p1, p2);
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);
		System.out.println("--------------------------------------------------");
		Person ptemp=p1;
		p1=p2;
		p2=ptemp;
		System.out.println("1:"+p1);
		System.out.println("2:"+p2);

	}
	public static void swap(Person p1,Person p2)
	{
		int age=p1.getAge();
		Person temp=new Person(age);
		p1.setAge(p2.getAge());
		p2.setAge(temp.getAge());
	}

	
	public static class Person extends Object{
		public int age;
		public Person(int age)
		{
			this.age=age;
		}
		
		
		public int getAge() {
			return age;
		}


		public void setAge(int age) {
			this.age = age;
		}


		@Override
		public String toString() {
			return "age:"+age;
		}
		
	}
}

运行结果:

1:age:12
2:age:23
--------------------------------------------------
1:age:23
2:age:12
--------------------------------------------------
1:age:12
2:age:23




public class forth {

	
	public static void Swap(char[] ch,char c)
	{
		ch[0]='B';
		c='D';
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		char[] ch={'A','C'};
		Swap(ch,ch[1]);
		for(char c:ch)
		{
			System.out.println(c);
		}
	}
}


运行结果:

B
C

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值