Я создал массив с именем idPlate в абстрактный класс автомобиля:Почему мой массив печатает нуль? (Java)
public abstract class Vehicle
{
String[] idPlate = new String[20];
public abstract void setIDPlate(String plate, int num);
public abstract String getIDPlate(int num);
}
У меня есть еще один класс с именем автомобиль, который наследуется автомобиля:
public class Car extends Vehicle
{
public void setIDPlate(String plate, int num)
{
idPlate[num] = plate;
}
public String getIDPlate(int num)
{
return idPlate[num];
}
}
Я хочу написать массив из класс CarParkManager от метода addVehicle и печати из массива с помощью метода listVehicles:
public class CarParkManager
{
String returnToMenu = "Y";
String[] vehicle = new String[20];
public void menu()
{
while ("Y".equals(returnToMenu)) {
System.out.println("*********Menu*********");
System.out.println("Type appropriate number to select option:");
System.out.println("1- Add new vehicle to Car Park");
System.out.println("3- List Vehicles in Car Park");
Scanner scan = new Scanner(System.in);
String listnumber = scan.nextLine();
if ("1".equals(listnumber)) {
addVehicle(vehicle);
}
if ("3".equals(listnumber)) {
listVehicles(vehicle);
}
}
}
private void addVehicle(String v[])
{
System.out.println("Enter car ID plate");
Scanner input = new Scanner(System.in);
String vehicleid;
vehicleid = input.nextLine();
for (int x = 0; x < v.length; x++) {
if (v[x] == null) {
v[x] = "Car";
Car car = new Car();
car.setIDPlate(vehicleid, x);
break;
}
}
}
public void listVehicles(String v[])
{
System.out.println("****List Vehicle in Car Park****");
for (int x = 0; x < 20; x++) {
if (v[x] == null) {
System.out.println("Parking lot " + x + ": Vacant");
}
if (v[x] == "Car") {
Car getcarid = new Car();
System.out.println("Parking lot " + x + ": " + v[x] + ", ID-" + getcarid.getIDPlate(x));
}
}
}
}
Я могу распечатать фр ом массив транспортного средства, но idPlate остается пустой и поэтому выход, как: парковки 0: Автомобиль, ID-нуль
Вы создаете новый 'Car' (' getcarid') непосредственно перед его печатью, поэтому поле idPlate для этого объекта никогда не инициализируется. – DNA
Мне даже не нужно было создавать новый автомобиль. Благодаря! – Mark