static 是靜態(tài)聲明,所以會(huì)先執(zhí)行Employee.id的時(shí)候,會(huì)先執(zhí)行static的腳本,就是id 的默認(rèn)賦值和靜態(tài)塊的執(zhí)行,即打印那個(gè)static_block

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、微信小程序、公眾號(hào)商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。
所以流程是。賦值id,打印static_block;那上面的代碼就是打印static_block 和Main:0
class?A?{
double?f(double?x,?double?y)?{
return?x?+?y;
}
int?getNumber(int?a)?{
return?a?+?1;
}
static?int?g(int?n)?{
return?n?*?n;
}
int?m;
int?getM()?{
return?m;
}
int?seeM(){return?m;}
}
class?B?extends?A?{
double?f(int?x,?int?y)?{
return?x?*?y;
}
int?getNumber(int?a)?{
return?a?+?100;
}
int?xx()?{
return?11;
}
static?int?g(int?n)?{
int?m?=?A.g(n);
return?m?+?n;
}
int?m;
int?getM()?{
return?m?+?100;
}
}
class?E?{
public?static?void?main(String[]?args)?{
B?b?=?new?B();
System.out.println(b.f(3,?5));//?15.0
System.out.println(b.f(3.0,?5.0));?//?8.0
A?a?=?new?A();
System.out.println(a.getNumber(10));//?11
a?=?new?B();//?原因?yàn)锳的引用,B的對(duì)象,A的引用a指向B對(duì)象,此時(shí)的a只會(huì)擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會(huì)使用B的方法
System.out.println(a.getNumber(10));//?110
System.out.println(b.f(10.0,?8.0));?//?18.0
System.out.println(b.g(3));//?12
a?=?new?B();//?原因?yàn)锳的引用,B的對(duì)象,A的引用a指向B對(duì)象,此時(shí)的a只會(huì)擁有A的方法,但是如果B中有方法覆蓋了A的方法,則會(huì)使用B的方法
System.out.println(a.f(10.0,?8.0));?//?18.0
System.out.println(a.g(3));//?9
b.m?=?20;
System.out.println(b.getM());//?120
A?a1?=?b;//?a1指向?qū)ο骲
a1.m?=?-100;//?a1變量賦值-100
System.out.println(a1.getM());//?120:?a1.getM()==實(shí)質(zhì)上已經(jīng)被b的getM覆蓋,且此時(shí)用的是b的變量100,調(diào)用之后結(jié)果為20+100?=?120
System.out.println(b.seeM());//?-100:?b的seeM()來自父類A,當(dāng)然會(huì)調(diào)用父類的A.m=-100,所以此時(shí)結(jié)果為-100
}
}
class?Father?{
private?int?money?=?12;
float?height;
int?seeMoney(){return?money;}
}
class?Son?extends?Father?{
int?height;
int?lookMoney()?{
int?m?=?seeMoney();
return?m;
}
}
class?EE?{
public?static?void?main(String[]?args)?{
Son?erzi?=?new?Son();
//?erzi.money?=?300;//?錯(cuò)誤原因在Son沒有money這一屬性,什么樣的引用對(duì)應(yīng)什么樣的變量和方法
//?erzi.height?=?1.78F;//?類型錯(cuò)誤
}
}
abstract?class?XX?{
//?只能設(shè)置可視性修飾符“公用”或“受保護(hù)”中的一個(gè)
public?static?void?cry(){}
abstract?float?cry1();
}
這種問題有個(gè)很簡(jiǎn)單的方法,用單步跟蹤。
Eclipse等主流IDE均支持。
許多時(shí)候,我們必須依賴一些工具了
沒有反應(yīng)是什么意思,你的提示信息都是控制臺(tái)輸出,控制臺(tái)才看的見吧
很好理解的啊?打印出來的字符串不用我說了吧?比如CALL SECOND之類的,因?yàn)檫@個(gè)執(zhí)行在前啊?
其他的我就選一個(gè)講下吧:比如
System.out.println("c2==c3:"+(c2==c3)); 結(jié)果是: c2==c3:false
對(duì)吧,前面輸出的是字符串,也就是冒號(hào)內(nèi)的“c2==c3:”,后面是c2和c3的比較結(jié)果,==是邏輯操作符,如果兩個(gè)變量相等則返回true,負(fù)責(zé)返回false,這就解釋了false。
程序中if語(yǔ)句后帶了分號(hào),導(dǎo)致if條件成立時(shí)的執(zhí)行語(yǔ)句為空,需要去掉分號(hào):
if(arr[x]??arr[max]){
max?=?x;
}
和
if(arr[x]??arr[min]){
min?=?x;
}
PS:即便if語(yǔ)句執(zhí)行體只有一句話,最好也加上大括號(hào),這是個(gè)好習(xí)慣。
網(wǎng)頁(yè)題目:JAVA代碼審查結(jié)果匯總,java代碼審查結(jié)果匯總怎么做
瀏覽路徑:http://chinadenli.net/article39/dsejish.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、電子商務(wù)、網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)