Была дана задача:
/**
* Создайте класс окружности Circle на координатной плоскости
* Инициализация - радиус.
* Он должен уметь:
* 1) Предоставлять площадь круга, ограниченного этой окружностью.
* 2) Изменять положение центра окружности.
* 3) Отвечать на вопрос, есть ли пересечения хотя бы в 1 точке с другой окружностью.
* 4) Вычислять расстояние до другой окружности(расстояние между их центрами).
*/
public class Circle {
final double INITIAL_RADIUS = 0.0D;
final double INITIAL_xCoordinate = 0.0D;
final double INITIAL_yCoordinate = 0.0D;
private double radius;
private double xCoordinate;
private double yCoordinate;
public Circle() {
this.radius = INITIAL_RADIUS;
this.xCoordinate = INITIAL_xCoordinate;
this.yCoordinate = INITIAL_yCoordinate;
}
public Circle(double radius) {
this.radius = radius;
this.xCoordinate = INITIAL_xCoordinate;
this.yCoordinate = INITIAL_yCoordinate;
}
public double squareOfCircle() {
return Math.PI * this.radius * this.radius;
}
public void setCenterOfCircle(double xCoordinate, double yCoordinate) {
this.yCoordinate = yCoordinate;
this.xCoordinate = xCoordinate;
}
public double distanceBetweenCenter(Circle circle) {
double x = Math.abs(circle.xCoordinate - this.xCoordinate);
double y = Math.abs(circle.yCoordinate - this.yCoordinate);
return Math.sqrt(x * x + y * y);
}
public boolean isIntersect(Circle circle) {
return distanceBetweenCenter(circle) <= (circle.getRadius() + this.radius);
}
public double getRadius() {
return radius;
}
}
Думаю сделал в ней все не так уж и плохо. Но вот вторую почему-то не получается понять, с паттернами раньше не работал) Прошу вашей помощи, все ли я правильно сделал ?
/**
* 4. Написать синглтон для Circle.
* Синглтон(одиночка) - некая схема, которая гарантирует,
* что в программе будет объект некоторого класса в единственном экземпляре.
* Подумать, как подправить класс из предыдущего задания, чтобы такая схема имела место.
*/
public class Circle {
private static Circle circle;
private double radius;
private double xCoordinate;
private double yCoordinate;
private Circle(double radius, double xCoordinate, double yCoordinate) {
this.radius = radius;
this.xCoordinate = xCoordinate;
this.yCoordinate = yCoordinate;
}
public static Circle getInstance(double radius, double xCoordinate, double yCoordinate) {
if (circle == null) {
circle = new Circle(radius, xCoordinate, yCoordinate);
}
return circle;
}
public double squareOfCircle() {
return Math.PI * this.radius * this.radius;
}
}
Буду рад любой помощи :)
PS: поправил метод :
public static synchronized Circle getInstance(double radius, double xCoordinate, double yCoordinate) {
if (circle == null) {
circle = new Circle(radius, xCoordinate, yCoordinate);
}
return circle;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Допустим, у меня 5 полок для книгТак же имеется коллекция (Collection<String>) с названиями книг
Я создал проект и после его сохранения и загрузки он перестал видеть директории и в том числе класс "main"
У меня вопрос про использование метода toString(), его переопределение На сколько я знаю, он используется для удобного вывода данных об объекте...