从文件中读取(不同形状的)值,这些值将用于计算某些区域

时间:2019-01-13 16:29:37

标签: java polymorphism

我有一个shapes.txt文件,其中包含以下数据:

Circle:15;
Rectangle:5,8;
Triangle:4,10,10;

在Java程序中,我有一个Shapes接口,应该将其用于计算每个形状的面积(该接口包含一种方法calcArea())。我应该阅读文件,然后创建对象数组并为每个对象调用calcArea方法,以便它将计算面积(多态性)。

我不知道该如何实现,因此,这是我编写的用于从文件读取数据的代码(我认为这不是一个好习惯……):

in = new BufferedReader(new FileReader(new File(loc)));
String line = in.readLine();
StringBuffer buf = new StringBuffer(line);
String s1 = buf.substring(buf.lastIndexOf(":") + 1);

if (line.contains("Circle")) {
    Circle circle = new Circle(Integer.parseInt(s1));
}

对于矩形:

else if (line.contains("Rectangle")) {
     String[] a = ((line.substring(line.lastIndexOf(":") + 1)).split(","));
     int arf = Integer.parseInt(a[0]);
     int ars = Integer.parseInt(a[1]);
     Rectangle rect = new Rectangle(arf, ars);
}

也许我需要创建一个不同的方法,该方法将返回Shapes类型的对象,但是如果以这种方式启动,我将不知道如何从文件中读取值,因此将其提供给构造函数每个Shapes类型的对象。

如果有任何意见和帮助,我将不胜感激。

0 个答案:

没有答案