編程中構(gòu)造函數(shù)與方法的區(qū)別
計算機編程有很多專業(yè)的術(shù)語,如構(gòu)造函數(shù),有人會說構(gòu)造函數(shù)不是編程方法嗎?其實這兩者還是有些區(qū)別的,下面小編告訴你。
構(gòu)造函數(shù)與方法的區(qū)別
1.在C#中,一些都是對象。你要用一個對象,就必須用new來實例化類(static類例外)。當你用new命令時,系統(tǒng)就會自動調(diào)用該類的構(gòu)造函數(shù),做些初始化之類的工作。至于方法,你只能通過手工方式用"object.method()"的方式調(diào)用。
2.類中可以沒有構(gòu)造函數(shù),因為沒有時,系統(tǒng)會自己幫你生成一個不帶參量的空的構(gòu)造函數(shù),它什么事都不會干,只是因為語法的原因而存在。構(gòu)造函數(shù)是可以重載的(還是過載了,我也記不清這兩個概念)。這方法你只能看書了,java和c#上都有講很多的。
3.堆(stack)和棧(heap)是存儲臨時數(shù)據(jù)的地方,就是我們說的緩存吧。對象的字柄是存在heap中的,基本類型(如int,char等)是存在stack中的。stack的速度比heap快。
4.構(gòu)造函數(shù)就是構(gòu)造方法,有的地方也叫做構(gòu)造器。構(gòu)造函數(shù)名與類名相同,方法是自定義的。構(gòu)造方法是一種特殊的方法,作用是初始化成員變量。
5.構(gòu)造函數(shù)就是一類特殊的方法。 他不同于其他方法的地方
一、創(chuàng)建對象時構(gòu)造函數(shù)自動運行,而一般方法必須有調(diào)用語句調(diào)用才能執(zhí)行
二、構(gòu)造函數(shù)與類名必須相同(含大小寫)
三、構(gòu)造函數(shù)不能有返回值類型
例如
class A
{
public A(){ }//構(gòu)造函數(shù)名與類名相同,沒有返回值類型
public string B(){ ...;return "str";}
//普通方法要有返回值類型,如無返回值必須寫void
}
A aa=new A();
//創(chuàng)建對象aa的時候會自動運行類a的構(gòu)造函數(shù)A()
aa.B();
//普通方法B只能遇到調(diào)用他的語句才會被執(zhí)行
小編推薦:JAVA構(gòu)造函數(shù)例子
public class UserManagerImpl implements UserManager {
private UserDao userDao;
public UserManagerImpl(UserDao userDao){
this.userDao=userDao;
}
public void save(String username,String password){
this.userDao.save(username, password);
}
}