Вам просто нужно сделать это в конструкторе и указать p1
и p2
, поскольку нулевой объект является недействительным условием
public Rectangle(Point p1, Point p2) {
if(p1.getX() != p2.getX() && p1.getY() != p2.getY()){
this.p1 = p1;
this.p2 = p2;
}
}
Или создать точки по умолчанию:
public Rectangle(Point p1, Point p2) {
if(p1.getX() != p2.getX() && p1.getY() != p2.getY()){
this.p1 = p1;
this.p2 = p2;
}else{
this.p1 = new Point(0,0);
this.p2 = new Point(1,1);
}
}
Или сгенерировать исключение
public Rectangle(Point p1, Point p2) {
if(p1.getX() != p2.getX() && p1.getY() != p2.getY()){
this.p1 = p1;
this.p2 = p2;
}else{
throw new IllegalArgumentException();
}
}
Также помните, что Rectangle.p1
не может работать, потому что атрибуты для каждого экземпляра, вызов атрибута like означает, что он глобален для класса, иопределено с помощью static
ключевого слова
static Point globalPointForClass;