2015-06-11 38 views
-6

我有两个子类CarTruck的公共类Vehicle,每个类扩展Vehicle。每个班级的构造函数与3个领域,颜色,品牌和耗油量相同。存储具有多个字段的对象的Java数组

我已经声明数组

Vehicle [] vehArray = new Vehicle[6]; 

将存储6辆不同的车辆。我知道一个电话

Car car1 = new Car("Red", "Ford", 15); 

将实例car1Car类型的对象。

如何将car1存储在vehArray[0]

+3

你可以做'vehArray [0] = car1' ..... –

+1

投票结果为质量很低。严重的是,在提出问题之前进行一些最低限度的背景研究。 – zubergu

+0

为什么downvotes?这是一个有效的问题。 – NickJ

回答

3

尝试做这样的事情:

vehArray[0] = car1; 
+0

是否可以做Car vehArray [0] = new Car (“红”,“福特”,15);? – gbm

+0

是的,我认为它也应该工作,只是如果你不确定就试试。编译器会报错,如果它不工作=) –

+0

伙计们,我只是回答错了什么?为什么downvotes? –

0

最短的方法是:

vehArray [0] = new Car("Red", "Ford", 15); 
0

甚至

Vehicle[] vehArray = new Vehicle[]{new Car("Red", "Ford", 15), new Truck("Silver", "Mercedes", 2)}; 
0

如下;

1)Test.java;


public class Test { 

    public static void main(String[] args) { 

     //Array Initialization with null Vehicle placeholders 
     Vehicle[] vehicleArray = new Vehicle[6]; 

     //Car class object instances are assiged 
     for(int i = 0; i < vehicleArray.length; i++) 
      vehicleArray[i] = new Car("Red", "Ford", 15+i); 

     for(int i = 0; i < vehicleArray.length; i++) 
      System.out.println 
       (
        i + 
        " : " + vehicleArray[i].getColor() + 
        " : " + vehicleArray[i].getBrand() + 
        " : " + vehicleArray[i].getGasMilage() 
       ); 
    } 

} 

2)Vehicle.java


public class Vehicle { 

    private String color; 
    private String brand; 
    private int gasMilage; 

    public Vehicle() {} 

    //Constructor with fields 
    public Vehicle(String color, String brand, int gasMilage) { 
     this.color = color; 
     this.brand = brand; 
     this.gasMilage = gasMilage; 
    } 

    public String getColor() { 
     return color; 
    } 

    public void setColor(String color) { 
     this.color = color; 
    } 

    public String getBrand() { 
     return brand; 
    } 

    public void setBrand(String brand) { 
     this.brand = brand; 
    } 

    public int getGasMilage() { 
     return gasMilage; 
    } 

    public void setGasMilage(int gasMilage) { 
     this.gasMilage = gasMilage; 
    } 

} 

3)Car.java


public class Car extends Vehicle { 

    //no-arg constructor 
    public Car() { 
     super(); 
    } 

    //field constructor 
    public Car(String color, String brand, int gasMilage) { 
     super(color, brand, gasMilage); 
    } 

} 

4)Truck.java


public class Truck extends Vehicle { 

    //no-arg constructor 
    public Truck() { 
     super(); 
    } 

    //field constructor 
    public Truck(String color, String brand, int gasMilage) { 
     super(color, brand, gasMilage); 
    } 

} 
0

我建议声明子类的所有对象的第一话,就可以存储在车辆像这样:

Vehicle[] vehicleArray = {ob1,ob2,ob3,ob4,andSo_On}; 
相关问题