---
# System prepended metadata

title: 傳值傳址測試

---

# 傳值傳址測試
###### tags: 'Ming' 

{%hackmd BJrTq20hE %}

public class PassArgTest {
	
	static void passValue(double value) {
		value = 20.0;
	}
	
	static void passReference(Pen reference) {
		reference.price = 20.0;
	}
	
	public static void main(String[] args) {
		double price = 10.0;
		passValue(price); // copy一份值給passValue這個方法
		System.out.println(price);        // 10 (還是原本的資料，沒有因為方法的執行而被修改)
		
		Pen myPen = new Pen();
		myPen.price = 10.0;
		passReference(myPen); //copy一個位址(門牌)給passReference這個方法
		System.out.println(myPen.price);  // 20 (原始資料發生修改，被passReference方法裡面改掉了)
	}
}


