У меня есть файл shape.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.
Буду благодарен за любые высказанные мнения и помощь.