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

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

大家幫忙看看,為什么變量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

?

正在回答

4 回答

好恐怖? 那么長的一串代碼

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

。。。

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

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

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

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

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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