Java基礎_0310:引用傳遞
阿新 • • 發佈:2018-01-27
[] 利用 clas -m temp oid param 核心 test
引用傳遞
引用傳遞是Java之中最讓初學者費解的概念,而在實際的開發之中,引用傳遞又有著非常重要的作用;
引用傳遞的核心在於同一塊堆內存空間被不同的棧內存所指向;
範例:第一道引用傳遞範例
class Message { private int num = 10; // 定義int基本類型的屬性 /** * 本類沒有提供無參構造方法,而是提供有參構造,可以接收num屬性的內容 * @param num 接收num屬性的內容 */ public Message(int num) { this.num = num; // 為num屬性賦值 } public void setNum(int num) { this.num = num; } public int getNum() { return this.num; } } public class TestDemo { public static void main(String args[]) { Message msg = new Message(30); // 實例化Message類對象同時傳遞num屬性內容 fun(msg); // 引用傳遞 System.out.println(msg.getNum()); // 輸出num屬性內容 } /** * 修改Message類中的num屬性內容 * @param temp Message類的引用 */ public static void fun(Message temp) { temp.setNum(100); // 修改num屬性內容 } } 程序執行結果: 100
範例:第二道引用範例
public class TestDemo { public static void main(String args[]) { String msg = "Hello"; // 定義String類對象 fun(msg); // 引用傳遞 System.out.println(msg); // 輸出msg對象內容 } public static void fun(String temp) { // 接收字符串引用 temp = "World"; // 改變字符串引用 } } 程序執行結果:Hello
範例:第三道引用傳遞
class Message { private String info = "此內容無用" ; // 定義String類型屬性 public Message(String info) { // 利用構造方法設置info屬性內容 this.info = info ; } public void setInfo(String info) { this.info = info ; } public String getInfo() { return this.info ; } } public class TestDemo { public static void main(String args[]) { Message msg = new Message("Hello") ; // 實例化Message類對象 fun(msg) ; // 引用傳遞 System.out.println(msg.getInfo()) ; // 輸出info屬性內容 } public static void fun(Message temp) { // 接收Message類引用 temp.setInfo("World") ; // 修改info屬性內容 } } 程序執行結果:World
Java基礎_0310:引用傳遞