引用传递

引用传递是Java的精髓所在,可以说如果引用传递你不清楚,那么几乎可以说你不会Java
引用传递的核心意义:同一块堆内存空间可以被不同的栈内存所指向,不同的栈内存可以指向同一个堆内存。
范例:

class Message{
private int num=10;
public Message(int num){
this.num=num;
}
public void setNum(int num){
 this.num=num;
}
public int getNum(){
return this.num;
}
}
public class TestDemo{
  public static void main(String args[]){
 Message msg=new Message(30);
 fun(msg);
 System.out.println(msg.getNum());
}
public static void fun(Message temp){
  temp.setNum(100);
}
}

结果是:100

范例二:

public class TestDemo{
    public static void main(String args[]){
 String msg="Hello";
 fun(msg);
 System.out.println(msg);
}
public static void fun(String temp){
  temp="World";
}
}

输出的是Hello。相信很多的同学搞不懂了。这个题难就难在Java中String类对象内容一旦声明就不可以改变。改变靠的是引用地址的改变。

范例三

class Message{
 private String info="nihao";
 public Message(String info){
 this.info=info;
 }
 public void setInfo(String info){
 this.info=info;
 }
 public String getInfo(){
 return this.info;
}
}

public class TestDemo{
    public static void main(String args[]){
 Message msg=new Message("Hello");
 fun(msg);
 System.out.println(msg.getInfo());
}
public static void fun(Message temp){
  temp.setInfo("World");
}
}```

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值