将数组对象及其变量列出到Main方法中

时间:2019-04-21 03:17:18

标签: java arrays object arraylist

好的,我是这里的新手,但在许多不同的场合使用该站点来尝试找到解决我遇到的问题的方法。我有一个正在上学的汽车库存计划。基本上,我使用setter和getter将对象添加到我的汽车类中的ArrayList中。

我在编写listAllVehicles方法时遇到很多麻烦。起初,我可以在车辆数组列表中列出车辆,但这会给我一个指向该对象的指针。所以看起来像是com.automobile@1662365。我想在汽车类中创建一个名为listAllVehicles的循环方法,该方法循环遍历数组列表并打印每个车辆的简短描述,直到列表完成。我在编写代码方面取得了一些进展,但是它不起作用,并且for循环没有初始化。我敢肯定,你们会知道我到底在做什么错。

我的代码目前尚未设置为ToString方法来设置打印内容的格式,但是我对此想法持开放态度(已经尝试过,但无法弄清楚)

任何帮助将不胜感激。谢谢大家!

我试图转换为字符串。我搞砸了强制转换为for循环中的对象。确实有很多不同的东西,但是我似乎无法全部使用。

public static void main(String[] args) {
        String model, make, color;
        int year = 0;
        int mileage = 0;
        Scanner userInput = new Scanner(System.in);

        System.out.println("[1]Add a Vehicle\n[2]List All 
        Vehicles\n[3]Update a Vehicle\n[4]Delete a Vehicle\n[5]Quit\n");
        System.out.print("Please choose from an option above: ");
        int userChoice = userInput.nextInt();
        switch(userChoice) {
        case 1:
            Scanner addVehicleScanner = new Scanner(System.in);
            Automobile newVehicle = new Automobile();
            System.out.print("What is the vehicle make: ");
            make = addVehicleScanner.next();
            newVehicle.setMake(make);
            System.out.print("What is the vehicle model: ");
            model = addVehicleScanner.next();
            newVehicle.setModel(model);
            System.out.print("What is the vehicle color: ");
            color = addVehicleScanner.next();
            newVehicle.setColor(color);
            System.out.print("What is the vehicle year: ");
            year = addVehicleScanner.nextInt();
            newVehicle.setYear(year);
            System.out.print("What is the vehicle mileage: ");
            mileage = addVehicleScanner.nextInt();
            newVehicle.setMileage(mileage);
            newVehicle.addVehicle(newVehicle);
            vehicleInventory.main(args);
            break;
        case 2:
            Automobile printAllVehicles = new Automobile();
            printAllVehicles.listAllVehicles();
            break;
        case 3:
            //FIX ME: Add Update Vehicle Code
            break;
        case 4:
            //FIX ME: Add Delete Vehicle Code
            break;
        case 5:
            System.out.println("\n\nGoodbye!");
            break;




public void listAllVehicles() {
        Automobile temp = new Automobile();
        for (int i = 0; i < vehicles.size(); i++) {
            temp = (Automobile) vehicles.get(i);
            System.out.println(temp);
        }
    }

1 个答案:

答案 0 :(得分:2)

一些使您的代码正常工作的建议

1)覆盖toString类的Automobile方法并返回汽车对象的完整含义,以便当您在System.out.println的对象上调用Automobile时,你那细节

@Override
public String toString() {
return "Automobile [ model "+ model +"]";
}

2)切勿调用main之类的vehicleInventory.main(args)方法。主要方法是由JVM调用作为类的起点。在您的代码中,您可以使用while循环

来代替调用此代码