• 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
    
    

  • 相关阅读:
    2016.07.13-map的使用(以leetcode1-Two Sum为例)
    2016.6.26——Maximum Depth of Binary Tree
    centos7下docker发布第一个微服务应用(Eureka)
    centos7下快速安装Nginx服务器
    java队列Queue及阻塞队列
    JConsole连接远程linux服务器配置
    mysql时间与字符串之间相互转换
    Tomcat启动报错:org.apache.catalina.LifecycleException: Failed to start component...java.util.zip.ZipException: error in opening zip file
    java post请求的表单提交和json提交简单小结
    wagon-maven-plugin实现自动打包部署到服务器
  • 原文地址:https://www.cnblogs.com/xuwei1/p/8361795.html
Copyright © 2020-2023  润新知