java 值传递,和引用传递的问题
java 值传递,和引用传递的问题
horacerain 发表于1年前
java 值传递,和引用传递的问题
  • 发表于 1年前
  • 阅读 2
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 这个问题不是很绝对。

1,如果是基本数据类型和String类型,显然是值传递, 作为参数的引用被修改只是一个副本, 不影响它原来的值。 2,引用类型 传递时,可以修改 引用所指向对象的属性,但不能直接对这个引用赋新值。

public class translation {
	
	public static void main(String[] args) {
		User user1 = new User("张三",12);
		User user2 = new User("李四",20);
		User user3 = new User("王五",50);
		trans(user1,user2);
		objTrans(user3);
		System.out.println(user1.toString()+"\n"+user2.toString()+"\n"+user3.toString());
	}
	public static void objTrans(User user){   //修改对象的属性  ,可以引用传递
		user.name="老王";
	}
	public static void trans(User u1,User u2){   //
		User temp = new User();
		temp = u1;
		u1=u2;
		u2=temp;
	}
}
class User{
	String name;
	int age;
	public User() {
		// TODO Auto-generated constructor stub
	}
	public User(String name,int age) {
		this.name=name;
		this.age=age;
	}
	@Override
	public String toString() {
		return "User [age=" + age + ", name=" + name + "]";
	}
	
}
        结果:
        User [age=12, name=张三]
        User [age=20, name=李四]
        User [age=50, name=老王]
共有 人打赏支持
粉丝 0
博文 16
码字总数 2064
×
horacerain
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: