Как уже упоминалось в моем заголовке, я хочу иметь возможность сравнивать свои входные данные в конструкторе. Но я просто не понимаю, почему у нас есть два объекта, задающих параметры.
Пожалуйста, помогите TvT
У меня есть интерфейс, который называется автомобиль со следующими методами:
public String getName();
public int getTopSpeed ();
public int getMaxPassengers ();
Я устал:
if (v.getMaxParameters <0 || maxParameter <0)
throw new IllegalArgumentException();
else
return maxParameter;
но яполучить ошибку nullpointerexception, и да, я, вероятно, делаю это совершенно неправильно. я так растерялся ....
public class Car implements Vehicle {
String name;
int speed;
int maxPassenger;
double weight;
public Vehicle v;
public Car(String name, int speed, int maxPassenger, double weight) {
if (v.getName().length() <0)
throw new IllegalArgumentException ();
else
this.name = name;
if (speed < 0)
throw new IllegalArgumentException ();
else
this.speed = speed;
if (maxPassenger <0)
throw new IllegalArgumentException();
else
this.maxPassenger = maxPassenger;
if (weight<0 )
throw new IllegalArgumentException();
else
this.weight= weight;
}
}
Это то, что я пытаюсь проверить, и это должно быть "неудачей", поскольку пассажиры разных ценностей.
try {
Vehicle v = new Car(" ", 280, 5, 2.1);
Car c = new Car("BMW", 280, 5, 2.1);
System.out.println(v.getName());
System.out.println(v.getTopSpeed());
System.out.println(c.getMaxPassengers());
System.out.println(c.getWeight());
} catch (IllegalArgumentException ex) {
System.out.println("failure");
}
и это тоже ошибка, так как имена разные / пусто
EIDITED