服务器之家

服务器之家 > 正文

Java中的值传递和引用传递实例介绍

时间:2019-10-15 10:26     来源/作者:java之家

代码如下:


package Object.reference; 
public class People { 
    private String name; 
    private int age; 
    public People(){ 
    } 
    public People(String name, int age) { 
        super(); 
        this.name = name; 
        this.age = age; 
    } 
    public String toString(){ 
        return "name:" + name + " age:" + age; 
    } 
    public String getName() { 
        return name; 
    } 
    public int getAge() { 
        return age; 
    } 
    public void setName(String name) { 
        this.name = name; 
    } 
    public void setAge(int age) { 
        this.age = age; 
    } 

 

复制代码代码如下:


package Object.reference; 
/*  java 中的值传递和引用传递 
    //www.zzvips.com/
    java 中没有引用传递,都是值传递的 
*/
public class Test { 
    public static void swap(People a, People b, boolean flag) { 
        if (flag) { 
            // 可以通过传递副本修改对象的值 
            a.setName("changeName"); 
            a.setAge(100); 
        } else { 
            //副本交换,并不影响主程序的指针 
            People c = a; 
            a = b; 
            b = c; 
        } 
    } 
    public static void main(String[] args) { 
        People p1 = new People("yingjie", 23); 
        People p2 = new People("yuexin", 20); 
        swap(p1, p2,false);//传递的是p1,p2的副本,函数调用前后p1,p2没任何改变 
        swap(p1, p2,true);//传递的是p1,p2的副本,可以通过传递副本修改对象的值,函数调用前后p1对象内容改变 
    } 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部