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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

父類引用指向子類對象

父類引用指向子類對象

慕圣4665238 2017-11-23 09:38:39
為什么switch循環中的不會有指針報錯,而后面for循環中會有指針報錯????? 求解 package?com.java; import?java.util.Scanner; import?javax.xml.validation.SchemaFactoryConfigurationError; public?class?Mane?{ ?public?static?void?main(String[]?args)?{ ??//?TODO?Auto-generated?method?stub ????????System.out.println("歡迎使用答答租車系統:"); ????????System.out.println("您是否要租車:1是?0否"); ????????Scanner?scanner=new?Scanner(System.in); ????????int?respond=scanner.nextInt(); ????????if(respond==1) ????????{ ?????????System.out.println("您可租車的類型及其價目表:"); ?????????System.out.println("序號?汽車名稱?租金?容量"?); ?????????System.out.println("1.??奧迪A4???500元/天???載人:4人"); ?????????System.out.println("2.??馬自達6??400元/天???載人:4人"); ?????????System.out.println("3.??皮雪卡6??450元/天???載人:4人??載貨:2噸"); ?????????System.out.println("4.??金龍?????????800元/天???載人:20人"); ?????????System.out.println("5.??松花江??????400元/天???載貨:4噸"); ?????????System.out.println("6.??依維柯?????1000元/天??載貨:20噸"); ?????????System.out.println("請輸入您要租汽車的數量:"); ?????????int?number=scanner.nextInt(); ?????????Car?[]car=new?Car[6]; ?????????int?total=0; ?????????for(int?i=0;i<number;i++) ?????????{ ??????????System.out.println("請輸入第"+(i+1)+"輛車的序號:"); ?????????????int?carNumber=scanner.nextInt(); ??????????switch?(carNumber)?{ ????case?1: ?????car[i]=new?AodiA4(); ?????total=car[i].cost+total; ?????break; ????case?2: ?????car[i]=new?Mazida6(); ?????total=car[i].cost+total; ?????break;? ????case?3: ?????car[i]=new?Pixueka6(); ?????total=car[i].cost+total; ?????break;? ????case?4: ?????car[i]=new?Jinlong(); ?????total=car[i].cost+total; ?????break; ????case?5: ?????car[i]=new?Songhuajiang(); ?????total=car[i].cost+total; ?????break;? ????case?6: ?????car[i]=new?Yiweike(); ?????total=car[i].cost+total; ?????break; ????default: ?????break; ????} ?????????} ?????????int?totalCost=0; ?????????System.out.println("請輸入租車天數:"); ?????????int?days=scanner.nextInt(); ?????????System.out.println(total*days); ?????????for(int?i=0;i<car.length;i++) ?????????{ ??????????System.out.println(car[i].cost); ?????????} ????????? ????????? ?????????} ????????? ????????else ????????{ ????????} ?} }
查看完整描述

1 回答

?
怳然如夢

TA貢獻6條經驗 獲得超2個贊

這個應該和數組的擴容有關,如果客戶輸入的車數量為50,依次選擇(數組的初始大小為6)車型號后,數組會在選擇4或5個后擴容,然后繼續選擇車型,達到臨界值再次擴容。所以最好數組的長度應該大于50,具體多少可以debug 查看。注意數組賦值有擴容,不會報空指針,但是for循環會從0循環到數組擴容后的長度-1,自然會報空指針

查看完整回答
反對 回復 2017-11-29
  • 1 回答
  • 0 關注
  • 921 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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