2018-06-07学习小结 - 对象的引用与传递3

学习小结

范例 17-4 对象的传递引用

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年6月7日 下午8:31:33
 * @Description TODO 对象的传递引用
 */
public class P437_17_4 {

    public static void main(String[] args) {
        Person42 p1 = null; // 声明对象p1,此对象值为null,尚未实例化
        Person42 p2 = null; // 声明对象p1,此对象值为null,尚未实例化
        p1 = new Person42(); // 实例化对象p1
        p1.age = 20;
        p1.name = "Kimi";
        p2 = p1; // 将p1的引用赋给p2
        System.out.println("姓名:" + p2.name);
        System.out.println("年龄:" + p2.age);
        p1 = null; // 断开之前实例化对象的引用
    }

}

class Person42 {
    String name;
    int age;
}

运行结果:

运行结果

引用过程图示:

引用过程

范例 17-5 引用传递的使用

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年6月7日 下午8:47:35
 * @Description TODO 引用传递的使用
 */
public class P439_17_5 {

    public static void main(String[] args) {
        Book6 bookA = new Book6(); // 实例化一个对象
        Book6 bookB = new Book6(); // 实例化一个对象
        bookA.title = "Java 程序设计"; // 设置了类中的title属性
        bookA.price = 40; // 设置了类中的price属性
        System.out.println("引用传递前对象bookA:");
        bookA.printInfo(); // 对象bookA调用方法printInfo()
        bookB.title = "Java WEB 开发";
        bookB.price = 60;
        bookB = bookA; // 引用传递
        bookB.title = "Android 开发";
        System.out.println("引用传递后对象bookA:");
        bookA.printInfo(); // 对象bookA调用方法printInfo()
    }

}

class Book6 { // 定义类Book6
    String title;
    double price;

    public void printInfo() {
        System.out.println("title:" + this.title);
        System.out.println("price:" + this.price);
    }
}

运行结果:

运行结果

小结

一块堆内存可以被多个栈内存所指向,每一块栈内存只能够保存一块堆内存的地址。


记于2018年6月7日21:10:26
By Yvan

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容