繁体   English   中英

如何通过main方法将对象添加到数组中? 另外,如何在main方法中制作菜单?

[英]How do you add objects into an array from a main method? Also, how do you make a menu in the main method?

好的,所以我必须为我的一项任务做一个驱动程序,而我正在测试的是我的ArrayObject类。 该类具有“添加”方法:

private int actualSize; // assume actualSize == 0 for this code
public void add(Object obj)
{
    if(actualSize>=arr.length)
        return;
    arr[actualSize]=obj;
    actualSize++;
}

因此,这将添加用户在ArrayObject类中创建数组时所需的对象。 现在,我制作了一个ArrayObjectDriver类,在这个类中,我需要创建一个菜单,在该菜单中循环返回。 至今:

public class ArrayObjectDriver{
    ArrayObject array = new ArrayObject();
    public static void main(String[] args)
    {
        int option = selectionMenu();
        Scanner scanner = new Scanner(System.in);
        ArrayObjectDriver drive = new ArrayObjectDriver(); 
        drive.methods(option);
    }

    private static int selectionMenu()
    {
        int optionNumber = 1;
        System.out.println("Menu: ");
        System.out.println("1. Add object to the end of the list");
        return optionNumber;
    }

    private void methods(int option)
    {
        if(option==1)
        {
            System.out.println("Enter your object: ");
            String str = scanner.nextLine(); // putting string for now
            array.add(str);
        }
    }
}

这是我仅使用第一个选项的代码的片段。 我在将对象添加到数组时遇到了麻烦。 我不知道您将如何使用用户输入将对象添加到main方法中的数组。 发生的另一个问题是程序本身。 我将其保留为字符串以测试字符串输入,并且每次我运行该程序时,在要求我“输入我的对象:”后,它将始终停止运行。 我如何停止此操作,以便将一个字符串对象添加到我的数组中? 它不会向数组添加任何内容。

我的下一个问题是如何循环使用main方法。 我尝试了void方法(int选项)代码中的递归方法,然后测试将drive.methods(option)代码放入while循环中,但是它没有用。 我是否需要一遍又一遍地调用selectionMenu()?

编辑:

  • 我宣布了扫描仪。

  • 我声明了数组。

要从控制台获取用户输入,可以使用Scanner类: Scanner user_input = new Scanner( System.in ); 看起来您有一台可变的扫描仪,但是从您发布的摘录中,您从未初始化过它。 如果要循环使用主方法,可以执行以下操作:

import java.util.Scanner;

public class TestClass {

    private static Scanner scanner;
    public static void main(String[] args)
    {
        scanner = new Scanner(System.in);
        ArrayObject array = new ArrayObject();
        String option = "";
        int selection = selectionMenu();
        while(selection != 3){
            if(selection == 1){
                System.out.println("Enter your object");
                String input = scanner.next();
                array.add(input);
            }else if(selection == 2){
                for(Object o : array){
                    System.out.println("Object value: "+o.toString());
                }
            }

            selection = selectionMenu();
        }
        scanner.close();
    }

    public static int selectionMenu(){
        System.out.println("Menu:");
        System.out.println("\t1. Add object");
        System.out.println("\t2. Print objects");
        System.out.println("\t3. Quit:");
        int option =scanner.nextInt(); 
        return option;
    }
}

在您的代码中,在main方法中创建一个ArrayObject类对象,然后在方法中传递该对象的引用methods(int option, ArrayObject arrays) ,然后可以轻松地将对象添加到数组中。

并且,对于您的下一个问题。 为什么要循环main方法,而只是在main方法中创建for或while循环。 像这样:

     while(true)
     {
        System.out.println("Menu ");
        System.out.println("1. Option 1 ");
        System.out.println("2. Exit");
        System.out.println("Enter your choice ");
        int n = scanner.nextInt();
        switch(n)
        {
          case 1:
                System.out.println("Enter your object: ");
                String str = scanner.nextLine(); // putting string for now
                array.add(str);
                break;
           case 2 :
                System.exit(0);  

        }
     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM