原文地址: http://www.java2000.net/p11583
這里主要看類的構(gòu)造器的情況,默認(rèn)的,無(wú)參數(shù)的,有參數(shù)的,有不同參數(shù)類型的,有多個(gè)參數(shù)的等各種情況。
- package ?lession7;
- /**
- ?*?老紫竹JAVA基礎(chǔ)培訓(xùn)(7),構(gòu)造器的使用.<br>
- ?*?
- ?*?@author?老紫竹?JAVA世紀(jì)網(wǎng)(java2000.net)
- ?*?
- ?*/
- public ? class ?Lession7?{
- ?? public ? static ? void ?main(String[]?args)?{
- ???? new ?class1();? //?使用了系統(tǒng)自動(dòng)提供的無(wú)參數(shù)構(gòu)造器
- ???? new ?class2();? //?使用了手工編寫的無(wú)參數(shù)構(gòu)造器
- ???? new ?class3();? //?使用無(wú)參數(shù)構(gòu)造器
- ???? new ?class3( "java2000.net" );? //?使用有參數(shù)構(gòu)造器
- ???? //?new?class4();?//?使用無(wú)參數(shù)構(gòu)造器失敗
- ???? new ?class4( "java2000.net" );? //?調(diào)用有參數(shù)構(gòu)造器
- ???? new ?class5();? //?使用無(wú)參數(shù)構(gòu)造器
- ???? new ?class5( "java2000.net" );? //?調(diào)用有參數(shù)構(gòu)造器
- ???? new ?class5( 1 );? //?調(diào)用有參數(shù)的構(gòu)造器
- ???? new ?class5( "java2000.net" ,? 1 );? //?帶2個(gè)參數(shù)的構(gòu)造器
- ??}
- }
- class ?class1?{
- ?? //?此類沒有寫任何構(gòu)造器
- ?? //?系統(tǒng)會(huì)自動(dòng)提供一個(gè)默認(rèn)的?public?的無(wú)參數(shù)構(gòu)造器
- }
- class ?class2?{
- ?? //?手工編寫的無(wú)參數(shù)構(gòu)造器
- ?? //?如果只有這個(gè)構(gòu)造器,則和class1沒有任何區(qū)別
- ?? public ?class2()?{
- ??}
- }
- class ?class3?{
- ?? //?無(wú)參數(shù)的構(gòu)造器
- ?? public ?class3()?{
- ??}
- ?? //?有參數(shù)的構(gòu)造器
- ?? public ?class3(String?name)?{
- ??}
- }
- class ?class4?{
- ?? //?這個(gè)類只有一個(gè)帶參數(shù)的構(gòu)造器
- ?? //?系統(tǒng)不會(huì)自動(dòng)生成無(wú)參數(shù)的構(gòu)造器的
- ?? public ?class4(String?name)?{
- ??}
- }
- class ?class5?{
- ?? //?無(wú)參數(shù)構(gòu)造器
- ?? public ?class5()?{
- ??}
- ?? //?帶字符串參數(shù)的構(gòu)造器
- ?? public ?class5(String?name)?{
- ??}
- ?? //?帶整形數(shù)字參數(shù)的構(gòu)造器
- ?? public ?class5( int ?age)?{
- ??}
- ?? //?帶2個(gè)參數(shù)的構(gòu)造器
- ?? public ?class5(String?name,? int ?age)?{
- ??}
- }
測(cè)試, 記得每次測(cè)試后恢復(fù)現(xiàn)場(chǎng)哦 :
1 如果你已經(jīng)寫了其它的構(gòu)造器,則默認(rèn)的無(wú)參數(shù)構(gòu)造器就不存在了,嘗試把
????// new class4(); // 使用無(wú)參數(shù)構(gòu)造器失敗
前面的注釋去掉,看看輸出結(jié)果
2 嘗試在一個(gè)class4再增加一個(gè)字符串為參數(shù)的構(gòu)造器看看
- public ?class4(String?address){
- }
3 嘗試把 public 的構(gòu)造器改成 private 的看看編譯結(jié)果
4 嘗試把 public 的構(gòu)造器,改成默認(rèn)的,也就是沒有修飾符的看看,比如
- class4(String?name){
- }
6 把類挪到另外一個(gè)目錄,切按照4改成默認(rèn)的,然后編譯看看
總結(jié):
1 沒有任何構(gòu)造器的類,系統(tǒng)會(huì)自動(dòng)提供一個(gè)無(wú)參數(shù)的public的構(gòu)造器
2 如果有了任何的構(gòu)造器,系統(tǒng)不再提供

3 構(gòu)造器的參數(shù)類型和個(gè)數(shù),順序不能完全相同,這個(gè)和參數(shù)的名字沒關(guān)系,只和類型有關(guān)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
