4 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
MyClass myclass; // 定義一個(gè)對(duì)象,名字叫myclass
MyClass *myclass = new MyClass; //定義一個(gè)對(duì)象指針,同時(shí)為其申請(qǐng)內(nèi)存;用完記得回收內(nèi)存
MyClass myclass = new MyClass; // 錯(cuò)誤用法,編譯器會(huì)報(bào)錯(cuò)

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊
標(biāo)準(zhǔn)試卷解析是:因題目中定義的指針value是指向變量i的,所以直接利用語(yǔ)句MyClass(int i) {value=new int(i);}對(duì)value進(jìn)行賦值即可。
其他選項(xiàng)錯(cuò)誤的原因是:該類的構(gòu)造函數(shù)需要有實(shí)參傳遞給形參 i,來(lái)對(duì)value初始化,而ABC都是直接MyClass my,創(chuàng)造對(duì)象my時(shí),沒(méi)有傳參數(shù),因此value沒(méi)初始化無(wú)法使用。

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
構(gòu)造方法 是一個(gè)類要實(shí)例成對(duì)象 調(diào)用的方法; 是必須有 , 但是你創(chuàng)建一個(gè)類, 經(jīng)常不寫(xiě), 你不寫(xiě), 不代表你寫(xiě)的類沒(méi)有, 只要你不寫(xiě),java底層都會(huì)生成一個(gè)默認(rèn)的無(wú)參數(shù)的方法!
但是:如果你寫(xiě)了一個(gè)構(gòu)造方法, 不管有參無(wú)參, 系統(tǒng)就不會(huì)再默認(rèn)生成 , 這時(shí)如果你寫(xiě)的是有參的, { 那無(wú)參的那一個(gè)就沒(méi) 了, 系統(tǒng)不會(huì)生成了, 你用的時(shí)候就不能直接new 類名(); 這個(gè)了
只能用 new 類名(參數(shù));}
所以:一般來(lái)說(shuō), 只要寫(xiě)了有參的構(gòu)造函數(shù),都要寫(xiě)一個(gè)無(wú)參的構(gòu)造函數(shù)

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
MyClass y = new MyClass();
BaseClass x = y;
x.i = 100;
Console.WriteLine("{0}, {1}",x.i,y.i);
x.i = 100,已經(jīng)給他賦值了100,所以x.i輸出100.而y.i,y是myclass的一個(gè)對(duì)象,定義之后沒(méi)做任何賦值的動(dòng)作,而int的默認(rèn)值是0,則y.i輸出0.
第二題我經(jīng)常碰到過(guò),但是總是做不對(duì)。按照我的理解,答案應(yīng)該是B
因?yàn)?a >第一次實(shí)例化之后,count的值是1,而第二次實(shí)例化之后,因?yàn)閏ount是靜態(tài)變量,因此初始值還是1,而coount++之后又相當(dāng)于加了1,因此輸出的結(jié)果是2
添加回答
舉報(bào)