亚洲高清vr播放在线观看,欧美亚洲精品免费,欧美日韩天堂在线视频,午夜福利小视频

      學(xué)習(xí)啦>知識(shí)大全>知識(shí)百科>公共基礎(chǔ)知識(shí)>

      編程中構(gòu)造函數(shù)與方法的區(qū)別

      時(shí)間: 映芳735 分享

        計(jì)算機(jī)編程有很多專業(yè)的術(shù)語,如構(gòu)造函數(shù),有人會(huì)說構(gòu)造函數(shù)不是編程方法嗎?其實(shí)這兩者還是有些區(qū)別的,下面小編告訴你。

        構(gòu)造函數(shù)與方法的區(qū)別

        1.在C#中,一些都是對(duì)象。你要用一個(gè)對(duì)象,就必須用new來實(shí)例化類(static類例外)。當(dāng)你用new命令時(shí),系統(tǒng)就會(huì)自動(dòng)調(diào)用該類的構(gòu)造函數(shù),做些初始化之類的工作。至于方法,你只能通過手工方式用"object.method()"的方式調(diào)用。

        2.類中可以沒有構(gòu)造函數(shù),因?yàn)闆]有時(shí),系統(tǒng)會(huì)自己幫你生成一個(gè)不帶參量的空的構(gòu)造函數(shù),它什么事都不會(huì)干,只是因?yàn)檎Z法的原因而存在。構(gòu)造函數(shù)是可以重載的(還是過載了,我也記不清這兩個(gè)概念)。這方法你只能看書了,java和c#上都有講很多的。

        3.堆(stack)和棧(heap)是存儲(chǔ)臨時(shí)數(shù)據(jù)的地方,就是我們說的緩存吧。對(duì)象的字柄是存在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)建對(duì)象時(shí)構(gòu)造函數(shù)自動(dòng)運(yùn)行,而一般方法必須有調(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)建對(duì)象aa的時(shí)候會(huì)自動(dòng)運(yùn)行類a的構(gòu)造函數(shù)A()

        aa.B();

        //普通方法B只能遇到調(diào)用他的語句才會(huì)被執(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);

        }

        }

      533985