我正在尝试制作一个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