Appl класс использует объекты класса Square. Приминить технику "инкапсуляции полей" к полям в Square класса и измените существующий код. Пожалуйста предложите другие решения для улучшения качества кода
Такая задача мне попалось на собеседовании Такой код может удовлетворить интервьюера?
public class Square {
private double x, y;
private double width;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public Square() {
}
public Square(double x, double y, double width) {
this.x = x;
this.y = y;
this.width = width;
}
public double getPerimetr() {
return 4*width;
}
}
public class Appl {
public void work() {
Square square = new Square();
square.setX(2);
square.setY(3);
}
}
Геттеры и Сеттеры не дают автоматически инкапсуляции. Хотя почему-то многие так считают. Скорее даже наличие сеттеров говорит о отсутствии инкапсуляции. И по дефолту надо делать неизменяемые объекты. Мутабельные надо делать лишь при конкретной необходимости (но лучше и в этом случае еще раз подумать). И вообще, геттеры и сеттеры - это не обязанность, а только спецификация по JavaBeans. Ее совсем не обязательно всюду запихивать где надо и не надо.
Вот как можно написать проще:
public class Square {
private final double x, y;
private final double width;
public Square(double x, double y, double width) {
this.x = x;
this.y = y;
this.width = width;
}
public double x() {
return x;
}
public double y() {
return y;
}
public double width() {
return width;
}
public double perimetr() {
return 4*width;
}
}
public class Appl {
public void work() {
Square square = new Square(2, 3, 42);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я хочу реализовать Recycler View, в котором по нажатии на item будет появляться фрагментНо я у меня не работает метод getSupportFragmentManager(), я пытался подставлять...
Простите, как я могу обратиться к методу getName из активности NavigationActivity?
Есть код, который отвечает за отправку формы на сайте: