为以下代码编写静态方法

时间:2018-03-27 00:54:18

标签: java arrays

我需要编写一个静态方法,该方法接受一系列Vehicle并打印数组中的每个注册号。数组中的对象是Vehicle,Car或Truck对象引用。最后,我需要在一行上单独打印对象的注册号。

所以代码是:

public class Vehicle {
   private String registrationNumber;        
   public Vehicle(String rego) {
       registrationNumber = rego;
    }        
    public String getRegistrationNumber() {
        return registrationNumber;
    }
}

public class Car extends Vehicle {
    int passengers;        
    public Car(String rego, int pass) {
        super(rego);
        passengers = pass;
    }        
    public int getPassengers() {
        return passengers;
    }
}

public class Truck extends Vehicle {
    int tons;     
    public Truck(String rego, int tons) {
        super(rego);
        this.tons = tons;
    }       
    public int getTons() {
        return tons;
    }
}

我必须为以下测试编写静态方法并获得以下内容,但我遇到了一些麻烦。

Test and expected Result

这是我到目前为止所做的:

public static void printRegNum(Vehicle[] list){
    for (int i = 0; i < list.length; i++){
        System.out.println(list[i]);
    }
}

2 个答案:

答案 0 :(得分:0)

没有问题出在哪里

public static void main(String[] args){
  Car car = new Car("MYCAR",4);
  Truck t = new Truck("MYTRUCK", 16);
  Vehicle[] myList = new Vehicle[] {car, t};
  printRegNum(myList);
}

您似乎只需要打印&#34; rego&#34;。

System.out.println(list[i].getRegistrationNumber());

答案 1 :(得分:0)

使用System.out.println(list[i]);播放的

第一种方式是覆盖课程toString()中的Vehicle方法:

public class Vehicle {
    private String registrationNumber;        
    public Vehicle(String rego) {
       registrationNumber = rego;
    }        
    public String getRegistrationNumber() {
       return registrationNumber;
    }
    public String toString() {
       return registrationNumber;
    }
}

第二种方式正在改变:

来自:

System.out.println(list[i]);

为:

System.out.println(list[i].getRegistrationNumber());

希望那些人可以提供帮助。