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

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

用笨辦法寫的作業 有老師或大大看看達標不?

我用笨辦法寫的 寫了5個類?

一個父類 五個子類 一個main類 想知道如何能優化 更省代碼省空間呢?

如下:

父類 Transp

public class Transp {

public String transpName;

public String transpStyle;

public int transpNum;


public String getTranspName() {

return transpName;

}

public void setTranspName(String transpName) {

this.transpName = transpName;

}

public String getTranspStyle() {

return transpStyle;

}

public void setTranspStyle(String transpStyle) {

this.transpStyle = transpStyle;

}

public int getTranspNum() {

return transpNum;

}

public void setTranspNum(int transpNum) {

this.transpNum = transpNum;

}

public void setFields() {

setTranspName(null);

setTranspStyle(null);

setTranspNum(0);

}

}

子類 Bus

public class Bus extends Transp {


public void setFields() {

setTranspName("Bus");

setTranspStyle("land");

setTranspNum(40);

}

}

子類 Plane

public class Plane extends Transp {


public void setFields() {

setTranspName("Plane");

setTranspStyle("air");

setTranspNum(100);

}

}

子類 Ship

public class Ship extends Transp {


public void setFields() {

setTranspName("Ship");

setTranspStyle("sea");

setTranspNum(200);

}

}

子類 SpacePlane

public class SpacePlane extends Transp {


public void setFields() {

setTranspName("SpacePlane");

setTranspStyle("spcace");

setTranspNum(20);

}

}

子類 Train

public class Train extends Transp {


public void setFields() {

setTranspName("Train");

setTranspStyle("rail");

setTranspNum(500);

}

}

main類

import java.util.Scanner;


public class mainTransp {

public static void main(String[] args) {

double scannerNum;

Scanner input = new Scanner(System.in);

for (int i = 0; i < 6; i++) {

System.out.println("請輸入查詢序號:? 1為Bus 2為Plane 3為Ship 4為SpacePlane 5為Train 0為查詢所有");

scannerNum = input.nextDouble();

if (scannerNum < 0 || scannerNum > 5 || scannerNum != (int) scannerNum) {

System.out.println("輸入有誤 請重新輸入!");

continue;

} else {

if (scannerNum == 1 || scannerNum == 0) {

Bus set = new Bus();

set.setFields();

System.out.println("運輸方式:" + set.getTranspName() + "\n運輸路線為:" + set.getTranspStyle() + "\n運送人數為:"

+ set.getTranspNum() + "\n");

if (scannerNum != 0) {

break;

}

}

if (scannerNum == 2 || scannerNum == 0) {

Plane set = new Plane();

set.setFields();

System.out.println("運輸方式:" + set.getTranspName() + "\n運輸路線為:" + set.getTranspStyle() + "\n運送人數為:"

+ set.getTranspNum() + "\n");

if (scannerNum != 0) {

break;

}

}

if (scannerNum == 3 || scannerNum == 0) {

Ship set = new Ship();

set.setFields();

System.out.println("運輸方式:" + set.getTranspName() + "\n運輸路線為:" + set.getTranspStyle() + "\n運送人數為:"

+ set.getTranspNum() + "\n");

if (scannerNum != 0) {

break;

}

}

if (scannerNum == 4 || scannerNum == 0) {

SpacePlane set = new SpacePlane();

set.setFields();

System.out.println("運輸方式:" + set.getTranspName() + "\n運輸路線為:" + set.getTranspStyle() + "\n運送人數為:"

+ set.getTranspNum() + "\n");

if (scannerNum != 0) {

break;

}

}

if (scannerNum == 5 || scannerNum == 0) {

Train set = new Train();

set.setFields();

System.out.println("運輸方式:" + set.getTranspName() + "\n運輸路線為:" + set.getTranspStyle() + "\n運送人數為:"

+ set.getTranspNum() + "\n");

if (scannerNum != 0) {

break;

}

}

break;

}

}


}

}


運行后需要獲取輸入數字 是0-5的整數則相應的輸出對應的交通工具和運送人數? 0為輸出所有? 錯誤數字有提示

輸入0 運行如下:

請輸入查詢序號:? 1為Bus 2為Plane 3為Ship 4為SpacePlane 5為Train 0為查詢所有

0

運輸方式:Bus

運輸路線為:land

運送人數為:40


運輸方式:Plane

運輸路線為:air

運送人數為:100


運輸方式:Ship

運輸路線為:sea

運送人數為:200


運輸方式:SpacePlane

運輸路線為:spcace

運送人數為:20


運輸方式:Train

運輸路線為:rail

運送人數為:500


有老師指點一下嗎 謝謝

正在回答

3 回答

說實話,你這寫的太亂太雜了,開始用set和get來封裝的時候transpName和transpStyle前面修飾符就要為private,你定義為public就沒必要寫get,set方法

最后用個for來循環是為了防止亂輸入來寫的嗎?沒有必要呀,你現在學習的就那么多,沒有必要去防止出現異常啥的來操作,就按照學到的知識寫就行了,你要非得自己輸入什么就顯示什么,那就直接用switch來寫,0-6代表啥輸出啥就行,要不然就直接輸出五種汽車得了,暫時不要想太多

Bus set = new Bus();你這樣new一個對象,對象名為set后面所有的都設置為set,你這不仔細看都不明白?set.getTranspName()這set哪來的,直接就定義為bus得了,一般定義名字都是看著就懂的,不然沒注釋仔細看太累了

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

http://img1.sycdn.imooc.com//5f35f6aa0001a46819201032.jpg

get和set方法和你的一樣,就是選擇的結構不一樣,這樣個人感覺方便

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

qq_慕哥0281867

請問一下,不是很理解為什么要用get和set
2020-08-26 回復 有任何疑惑可以回復我~

選擇的話可以改成switch,比較方便點,然后輸出那個子類的屬性也會比你的那個方便很多


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

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

用笨辦法寫的作業 有老師或大大看看達標不?

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

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

幫助反饋 APP下載

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

公眾號

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