javaSE-引用传递

1-数组的传递引用

/**
    数组引用传递
 */
public class ArrayDemo04 {
    public static void main(String[] args) {
        //静态初始化数组
        int[] arr = {1, 2, 3, 5, 9};

        //传递数组引用
        fun(arr);

        //输出结果
        for(int i=0; i<arr.length; i++){
            System.out.println(arr[i] + ", ");
        }
    }

    //接收数组引用类型
    public static void fun(int[] x){
        x[0] = 6;
    }
}

1-2数组的传递引用图解

2-1 对象引用传递

引用数据类型就是指一段堆内存空间可以同时被多个栈内存空间所指向

public class Persion {
     String name; //声明姓名属性
     int age; //声明年龄属性

    public void tell(){ //取的信息方法
        System.out.println("姓名:" + name + ", 年龄:"+ age);
    }

}
public class ClassDemo05 {
    public static void main(String[] args) {
        Persion s1 = new Persion(); //声明对象,并且实例化
        Persion s2 = null;

        s2 = s1; //将s1的堆内存空间的使用权给s2
        s1.name = "科比"; //设置s1对象的name属性的内容
        s1.age = 22; //设置s1对象的age属性

        //设置s2对象的内容,实际上就是设置s1对象的内容
        s2.age = 44;

        //输出结果
        System.out.println("s1对象中的内容-----");
        s1.tell();

        System.out.println("s2对象中的内容-----");
        s2.tell();
    }
}

2-2面向对象的传递引用图解

2-3面向对象引用传递

public class ClassDemo05 {
    public static void main(String[] args) {
        Persion s1 = new Persion(); //声明对象,并且实例化
        Persion s2 = new Persion(); //声明对象,并且实例化

        s2 = s1; //将s1的堆内存空间的使用权给s2
        s1.name = "科比"; //设置s1对象的name属性的内容
        s1.age = 22; //设置s1对象的age属性

        s2.name = "杜兰特"; //设置s2对象的name属性内容
        s2.age = 20; //设置s2的age属性内容

        s2 = s1; //将s1的引用传递给s2

        //输出结果
        System.out.println("s1对象中的内容-----");
        s1.tell();

        System.out.println("s2对象中的内容-----");
        s2.tell();
    }
}

2-4面向对象的传递引用图解

posted @ 2019-06-29 23:48  guardwhy  阅读(135)  评论(0编辑  收藏  举报