學(xué)習(xí)小結(jié)
范例 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;
}
運行結(jié)果:
運行結(jié)果
引用過程圖示:
引用過程
范例 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 程序設(shè)計"; // 設(shè)置了類中的title屬性
bookA.price = 40; // 設(shè)置了類中的price屬性
System.out.println("引用傳遞前對象bookA:");
bookA.printInfo(); // 對象bookA調(diào)用方法printInfo()
bookB.title = "Java WEB 開發(fā)";
bookB.price = 60;
bookB = bookA; // 引用傳遞
bookB.title = "Android 開發(fā)";
System.out.println("引用傳遞后對象bookA:");
bookA.printInfo(); // 對象bookA調(diào)用方法printInfo()
}
}
class Book6 { // 定義類Book6
String title;
double price;
public void printInfo() {
System.out.println("title:" + this.title);
System.out.println("price:" + this.price);
}
}
運行結(jié)果:
運行結(jié)果
小結(jié)
一塊堆內(nèi)存可以被多個棧內(nèi)存所指向卡辰,每一塊棧內(nèi)存只能夠保存一塊堆內(nèi)存的地址。
記于2018年6月7日21:10:26
By Yvan