学习小结
范例 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