1.在C#中,一些都是對象。你要用一個對象,就必須用new來執行個體化類(static類例外)。當你用new命令時,系統就會自動調用該類的建構函式,做些初始化之類的工作。至於方法,你只能通過手工方式用"object.method()"的方式調用。
2.類中可以沒有建構函式,因為沒有時,系統會自己幫你產生一個不帶參量的空的建構函式,它什麼事都不會幹,只是因為文法的原因而存在。建構函式是可以重載的(還是過載了,我也記不清這兩個概念)。這方法你只能看書了,java和c#上都有講很多的。
3.堆(stack)和棧(heap)是儲存臨時資料的地方,就是我們說的緩衝吧。對象的字柄是存在heap中的,基本類型(如int,char等)是存在stack中的。stack的速度比heap快。這方面的資料在《thinking
in java》和《C#技術內幕(影印版)》中都有說明,《thinking in java》中講得很詳細易懂。
提問:建構函式與方法有何區別?建構函式就是構造方法,有的地方也叫做構造器。
建構函式名與類名相同,方法是自訂的。*構造方法是一種特殊的方法,作用是初始化成員變數。public class Test{ static int i;//定義一個成員變數 public Test(){ i = 10; }//本句為建構函式,(test和類名相同)作用是初始化成員變數,也可不寫,系統將預設一個空的建構函式,如 public Test(){} void plus(int x,int y){ System.out.println(x+y); }//定義一個plus方法,意思是傳入的數值為int型,傳入的個數為2個,傳入之後將兩個數字相加並列印出。 public static void main(String[] args){ Test t = new Test();//執行個體化一個對象, t.plus(1,3);//通過t來調用plus(成員)方法。 System.out.println(i);//列印出i值 } }
下面是我師父寫的:
建構函式就是一類特殊的方法。
他不同於其他方法的地方
一、建立對象時構造函數自動運行,而一般方法必須有調用語句調用才能執行
二、構造函數與類名必須相同(含大小寫)
三、構造函數不能有返回實值型別
例如
class A
{
public A(){ }//構造函數名與類名相同,沒有傳回值類型
public string B(){ ...;return "str";}//普通方法要有傳回值類型,如無返回值必須寫void
}
A aa=new A();//建立對象aa的時候會自動運行類a的構造函數A()
aa.B();//普通方法B只能遇到調用他的語句才會被執行