Добрый день. Поясните пожалуйста как выполнить задание:
Дан абстрактный класс прямоугольника Rectangle. А также интерфейс фабрики прямоугольников RectangleFactory.
1. Создайте конкретный класс RectangleFactoryImpl реализующий RectangleFactory
2. Фабрика должна возвращать экземпляры классов унаследованные от Rectangle и реализующие методы draw и getSquare
3. getSquare возвращает площадь прямоугольника int.
4. draw возвращает String в виде столбцов и строк заполненных звездочками. Например:
***
***
***
***
где число столбцов width = 3, а число строк height = 4.
Последняя строка звездочек также содержит перевод строки в конце.
Для проверки решения щелкните Check
Ожидаемый результат: Тесты должны завершиться успешно с надписью Correct.
Код Rectangle:
public abstract class Rectangle {
protected int width;
protected int height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
public Rectangle() {
this(25, 10);
}
public abstract int getSquare();
public abstract String draw();
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
}
Код RectangleFactory:
public abstract class RectangleFactory {
public abstract Rectangle getRectangle();
public abstract Rectangle getRectangle(int witdh, int height);
}
(задание 3,4) сделал:
public class RectangleFactoryImpl extends RectangleFactory {
@Override
public Rectangle getRectangle() {
Rectangle rectangle = new Rectangle() {
@Override
public int getSquare() {
return 0;
}
@Override
public String draw() {
return null;
}
};
return rectangle;
}
@Override
public Rectangle getRectangle(int witdh, int height) {
return null;
}
public int getSquare (int witdh, int height){
return witdh * height;
}
public String draw (int witdh, int height){
StringBuilder tabl = new StringBuilder();
if (witdh > 0 & height > 0){
for(int i = 0; i < height; i++)
{
for(int j = 0; j < witdh; j++){
tabl.append("*");
}
tabl.append("\n");
}
}
return tabl.toString();
}
}
Не понимаю как сделать п. 2. Подскажите пожалуйста. На сколько я понимаю при вызове примерно так:
RectangleFactory factory = new RectangleFactoryImpl()
по переменной factory должны быть доступны getRectangle() и getRectangle(int witdh, int height).
А уже после вызова Rectangle rectangle = factory.getRectangle(); должны быть доступны public int getSquare (int witdh, int height) и public String draw (int witdh, int height) но в данной ситуации не понимаю откуда мы получаем int witdh, int height.