我正在嘗試製作一個Java程序,它根據價格對不同類型的自行車進行排序。爲此,我有兩種不同類型的自行車:山地自行車和賽車。他們都可以是綠色或藍色。它具有以下格式:如何在Java中掃描文件後將字符串保存在文件中?
Blue Racing:
Price: 300
Topspeed: 50
Green Mountain:
price: 400
Topspeed: 30
Blue Mountain:
Price: 150
Topspeed: 20
Green Racing:
Topspeed: 50
price: 750
做這些自行車進行排序,我做了一個父類「自行車」,與子類「RaceBike」和子類「山地車」。這個班有一個掃描方法。該方法掃描自行車的類型並根據掃描自行車的類型調用其中一個子類的掃描方法。
所有的掃描方法必須是這樣的:
public static Bike scanner(Scanner scan);
然而,只要,例如,「藍色賽車」在父類掃描的,這話不能再由accesed掃描儀在子類的掃描儀方法中,但這是確定新自行車顏色所必需的。
所以我的問題是,如何在掃描後仍然可以訪問文件中的單詞?
不幸的是,由於我的大學規則,我無法顯示任何代碼。不過,我可以寫一些僞代碼,使其稍微更清晰:
public static Bike scanner(Scanner scan){
scan first word;
scan second word;
if second word equals racing
return racingbike.scanner(scan)
else
return mountainbike.scanner(scan)
}
public static RacingBike scanner(Scanner scan){
String color = scan first word //The color
scan second word //kind of bike
scan third word
int price = scan first number // price
return a new Racingbike, with attributes color and price
}
像上面的例子實施是不可能的,因爲顏色不能在RacingBike掃描方法accesed了。所以我必須找到一種方法來繼續訪問它。
我不能改變方法的返回類型和參數。
謝謝。
這實際上就是我在做的事情(如果我明白你的意思):例如,要得到我要做的價格:int price = scan.nextInt()。等我認爲這很清楚,但我現在將在我原來的問題中編輯它。 –
@JasonMacville不,你不是(我打算說*工廠方法*而不是*構造函數*)。讓我們這樣說吧:不應該有一個使用/導入RacingBike和Scanner的類。 – Bohemian