首页 > 编程语言 > 详细

Java基础_0310:引用传递

时间:2018-01-27 00:05:43      阅读:266      评论:0      收藏:0      [点我收藏+]

引用传递

引用传递是Java之中最让初学者费解的概念,而在实际的开发之中,引用传递又有着非常重要的作用;
引用传递的核心在于同一块堆内存空间被不同的栈内存所指向;

范例:第一道引用传递范例

class Message {
    private int num = 10;       // 定义int基本类型的属性
    /**
     * 本类没有提供无参构造方法,而是提供有参构造,可以接收num属性的内容
     * @param num 接收num属性的内容
     */
    public Message(int num) {
        this.num = 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);  // 实例化Message类对象同时传递num属性内容
        fun(msg);       // 引用传递
        System.out.println(msg.getNum());   // 输出num属性内容
    }
    /**
     * 修改Message类中的num属性内容
     * @param temp Message类的引用
     */
    public static void fun(Message temp) {
        temp.setNum(100);       // 修改num属性内容
    }
}


程序执行结果: 100

技术分享图片

范例:第二道引用范例

public class TestDemo {
    public static void main(String args[]) {
        String msg = "Hello";       // 定义String类对象
        fun(msg);           // 引用传递
        System.out.println(msg);    // 输出msg对象内容
    }
    public static void fun(String temp) {   // 接收字符串引用
        temp = "World";     // 改变字符串引用
    }
}

程序执行结果:Hello

技术分享图片

范例:第三道引用传递

class Message {
    private String info = "此内容无用" ;     // 定义String类型属性     
    public Message(String info) {       // 利用构造方法设置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") ;    // 实例化Message类对象
        fun(msg) ;                              // 引用传递
        System.out.println(msg.getInfo()) ; // 输出info属性内容
    }
    public static void fun(Message temp) {  // 接收Message类引用
        temp.setInfo("World") ;     // 修改info属性内容
    }
}
程序执行结果:World

技术分享图片

Java基础_0310:引用传递

原文:https://www.cnblogs.com/xuwei1/p/8361795.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!