• Java基础_0310:引用传递


    引用传递

    引用传递是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
    
    

  • 相关阅读:
    关于Hadoop分组排序
    关闭Xshell Linux服务关闭问题
    Centos 7 mysql的安装
    通过 Thumbnails 压缩图片后转 base64
    Centos 7 java环境安装
    mysql 批量添加
    SpringCloud_服务提供者关闭,eureka还显示问题
    关于Hutool发送邮件
    Spring 定时任务 @Scheduled注解
    Listary快捷键和idea快捷键冲突问题
  • 原文地址:https://www.cnblogs.com/xuwei1/p/8361795.html
Copyright © 2020-2023  润新知