1.物件就是變數,跟int double ...並無不同。
2.使用參考變數參考你的物件
Guy joe = new Guy();
joe就是一個變數,將會參考到一個Guy型別之物件。
3.物件參考指著誰(詳細可以參考p160)
//class
public class test
{
public int Money;
public string Name;
}
//網頁端
protected void Page_Load(object sender, EventArgs e)
{
test obj1 = new test() { Name = "melo" };
test obj2 = new test() { Name = "john" };
//把obj1這個物件參考指向obj2所指之instance,接著垃圾回收機制會把obj1指向之instance給收掉
obj1 = obj2;
Response.Write(obj1.Name);
Response.Write(obj2.Name);
}
範例:可以參考Elepahnt壓縮檔
4.陣列也可以包含一堆物件參考
陣列不在乎他存了什麼型別之元素,要建立int or Duck物件陣列都可以。
//宣告dogs變數,存放一群Dog物件之參考:Dog[],接著建立包含7個元素陣列
Dog[] dogs = new Dog[7];
//新增Dog instance放入 index 5
dogs[5] = new Dog();
dogs[0] = new Dog();
範例:可以參考MenuArray
5.物件與null
當建立一個新的參考卻未把他指向任何東西,此參考具有null,表示他沒有指向任何instance
ex:
Dog fido; //fido 參考為null
Dog lucky = new Dog();
fido = lucky; //現在fido參考指著lucky(dog物件)
lucky = null; //把lucky設為null,表示他可以被垃圾回收
note: 當透過參考改變某個值,其他同為參考此物件之參考存取這個值的時候,會一同受到影響。
ex: 假設rover與spot指向同一個物件,當rover.Breed = beagle時,那麼spot.Breed 也會等於 beagle。