私は車と呼ばれる抽象クラスでidPlateという配列を作成しました:私はからアレイへの書きたいなぜ私の配列はnullになりますか? (Java)の
public class Car extends Vehicle
{
public void setIDPlate(String plate, int num)
{
idPlate[num] = plate;
}
public String getIDPlate(int num)
{
return idPlate[num];
}
}
:私は車を継承カーと呼ばれる別のクラスを持っている
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 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));
}
}
}
}
私はFRをプリントアウトすることができるよ:listVehiclesメソッドを使用してアレイからaddVehicle方法および印刷からクラスCarParkManager OM車両の配列が、idPlateがnullのままで、その出力は以下のようである: 駐車場0:車、ID-ヌル
新しい 'Car'(' getcarid')を印刷する直前に作成するので、このオブジェクトの 'idPlate'フィールドは決して初期化されません。 – DNA
私は新しい車を作る必要はありませんでした。ありがとう! – Mark