gpt4 book ai didi

java - 如何创建另一个类的实例,加载带有数据的对象并将其打印出来?

转载 作者:行者123 更新时间:2023-12-02 05:10:51 25 4
gpt4 key购买 nike

我是一个十足的菜鸟(第五天编程),这解释了为什么我花了无数令人头疼的时间试图解决这个问题,但仍然没有弄清楚:

如何创建 CarAndBikes 实例,加载 3 辆汽车的信息并将其打印出来?

这是我不完整的代码,可以让您了解问题:

    public class Vehicle {

String manufacturer, model;
int numberOfWheels;

public Vehicle(String manufacturer, String model, int numberOfWheels) {

this.manufacturer = manufacturer;
this.model = model;
this.numberOfWheels = numberOfWheels;
}

public String getManufacturer() {
return manufacturer;
}

public String getModel() {
return model;
}

public int getNumberOfWheels() {
return numberOfWheels;
}

public String toString() {
return "(" + numberOfWheels +") '" + manufacturer + ", " + model + "'";
}
}

public class CarAndBikes {

private Vehicle[] items;
private int nextFreeItem = 0;

CarAndBikes (int size) {
items = new Vehicle[size];

for(int i = 0; i < size; i++)
items[i] = new Vehicle(manufacturer, model, numberOfWheels);
}

void addVehicle(String man, String mdl, int wheels) {
items[nextFreeItem++].addVehicle(man, mdl, wheels);
}

public String toString() {
return "(" + items + ")";
}
}

public class TestProgram extends CarAndBikes{
TestProgram(int size) {
super(size);
}

public static void main(String[] args) {
Vehicle vehicle1 = new Vehicle("Seat", "Ibiza", 4);
Vehicle vehicle2 = new Vehicle("Reliant", "Robin", 3);
Vehicle vehicle3 = new Vehicle("Honda", "Fireblade", 2);

System.out.println(vehicle1);
System.out.println(vehicle2);
System.out.println(vehicle3);
}
}

最佳答案

在我看来,你最好将汽车和自行车分成两个单独的类“汽车”和“自行车”,然后创建一个第三类来容纳这些对象的集合,这样你就可以使用 List 或 ArrayList 来存储它们,并有一个方法可以将它们打印出来。

import java.util.ArrayList;

Public Class Garage
{
private ArrayList<Vehicle> vehicles;

Public Garage()
{
vehicles = new ArrayList<Vehicle>();
}

public void addVehicle(Vehicle v)
{
vehicles.add(v);
}

public void getVehicles()
{
for(Vehicle v : vehicles)
{
System.out.Println(v.getModel());
}
}
}

您会注意到 ArrayList 接受车辆类型的对象,汽车和自行车都扩展了车辆,因此它们都会被接受。

关于java - 如何创建另一个类的实例,加载带有数据的对象并将其打印出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com