亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大家幫忙看看,為什么變量light賦值失敗,輸出結果為null?

//這是父類貨車的代碼
public?class?Truck?{

?static?Float?cargoCa;?????//創建貨車的載貨量

?static?int?capacity=4;????//創建貨車的載客量

?static?int?rent;?????//創建貨車的日租金

?int?smallType;?????//用來接收局部變量smalltype的值

?Scanner?input=new?Scanner(System.in);

?void?getType()?{

??System.out.println("請輸入您要選擇的貨車類型:");

?????System.out.println("1、輕型貨車(可核載5噸)??????????2、重型貨車(可核載20噸)");

?????int?smalltype=input.nextInt();

?????smallType=smalltype;

?????while(smalltype*0==0)?{

???????if(smalltype==1)?{???//這部分重型貨車的繼承代碼沒有貼上

????????Heavy?heavy=new?Heavy();

????????heavy.getBrand();

????????break;

???????}else?if(smalltype==2)?{

????????Light?light=new?Light();

????????light.getBrand();

????????break;

???????}else?{

????????System.out.println("您的輸入有誤!請輸入您要選擇的貨車類型:");

????????System.out.println("1、輕型貨車(可核載5噸)??????????2、重型貨車(可核載20噸)");

????????smalltype=input.nextInt();

???????}

?????}

?}
?
//show()方法調用兩個輕貨和重貨子類的showFinal()方法展示租車清單
?void?show()?{?????

??if(smallType==1)?{

??????Light?light=new?Light();

??????light.showFinal();

??}else?if(smallType==2)?{

???Heavy?heavy=new?Heavy();

???heavy.showFinal();

??}

?}

}

??

??//這是子類Light繼承父類Truck的代碼

??public?class?Light?extends?Truck?{

?static?String?name="輕型貨車";
?
?//【注意,創建light字符串,用來接收局部變量中的品牌名稱】
?static?String?light;

?Scanner?input=new?Scanner(System.in);

?void?getBrand()?{

??String?light1="日產";

??String?light2="雪鐵龍";

??String?light3="標致";

??Light.cargoCa=5f;

??System.out.println("請輸入您要選擇的輕型貨車品牌:");

?????System.out.println("1、"+light1+"(1200元/天)??????????"+"2、"+light2+"(1500元/天)??????????"+"3、"+light3+"(1800元/天)");

?????int?lBrand=input.nextInt();

?????while(lBrand*0==0)?{

??????if(lBrand==1)?{

???????Light.rent=1200;

???????light=light1;

???????break;

??????}else?if(lBrand==2)?{

???????Sedan.rent=1500;

???????light=light2;

???????break;

??????}else?if(lBrand==3)?{

???????Sedan.rent=1800;

???????light=light3;

???????break;

??????}else?{

???????System.out.println("您的輸入有誤!請輸入您要選擇的輕型貨車品牌:");

???????System.out.println(light1+"(1200元/天)??????????"+light2+"(1500元/天)??????????"+light3+"(1800元/天)");

???????lBrand=input.nextInt();

??????}

?????}

?}
?
//子類Light用來展示租車清單的showFinal()方法
?void?showFinal()?{

??System.out.println("請輸入您要租車的數量:");

?????int?amt=input.nextInt();

??System.out.println("請輸入您要租車的天數:");

?????int?days=input.nextInt();

?????int?price=Light.rent*amt*days;
?????
?????//【注意,就是這里的變量light,在InitialCRS類里面的最后輸出結果為null】
?????System.out.println("車型:"+light+name);

?????System.out.println("總載人量:"+Truck.capacity*amt+"??????????總載貨量:"+Light.cargoCa*amt+"噸");

?????System.out.println("總計:"+price+"元");

?}

}



?//這是執行類InitialCRS的代碼????????
?public?class?InitialCRS?{

?public?static?void?main(String[]?args)?{

??//?TODO?Auto-generated?method?stub

??Scanner?input=new?Scanner(System.in);

??System.out.println("請問您是否要租車?");

??System.out.println("1、是??????????2、否");

??int?confirm=input.nextInt();

??while(confirm*0==0)?{

??????if(confirm==2)?{

???????System.out.println("答答租車系統已退出,感謝您的使用!");

???????break;

??????}else?if(confirm==1)?{

????System.out.println("請選擇您要租賃的車輛類型:");

???????System.out.println("1、汽車??????????2、貨車??????????3、皮卡");

???????int?type=input.nextInt();

???????while(type*0==0)?{

????????????if(type==1)?{???//Car父類部分的代碼沒有貼出

????????????Car?car=new?Car();

????????????car.getType();

????????????car.show();

????????????break;

????????????}else?if(type==2)?{???//本次問題中的Truck類的方法調用

???????Truck?truck=new?Truck();

???????truck.getType();

???????truck.show();

???????break;

?????????????}else?if(type==3)?{???//pickup部分的代碼沒有貼出

????????Pickup?pickup=new?Pickup();

????????pickup.getBrand();

????????pickup.show();

????????break;

??????????????}else?{

????????????System.out.println("您的輸入有誤!請選擇您要租賃的車輛類型:");

????????????System.out.println("1、汽車??????????2、貨車??????????3、皮卡");

????????????type=input.nextInt();

????????????}

???????}

???????break;

??????}else?{

???????System.out.println("您的輸入有誤!請問您是否要租車?");

???????System.out.println("1、是??????????2、否");

???????confirm=input.nextInt();

???????}

?????}

??input.close();

?}

}
//在這里多說一句,我在其它子類里邊,以一模一樣的方式創建了類似于light的用來接收品牌的字符串,其最后的輸出結果都是正常的,只有這個字符串light不知道怎么回事輸出結果竟然是null

?

正在回答

2 回答

找到問題了,是Truck類中的Heavy與Light實例化的位置調換了。

0 回復 有任何疑惑可以回復我~

其運行結果如下圖,light的輸出值為nullhttp://img1.sycdn.imooc.com//5a45aef00001fe0603920394.jpg

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

大家幫忙看看,為什么變量light賦值失敗,輸出結果為null?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號