如何从main方法向数组中添加对象?另外,如何在主方法中创建菜单?

时间:2015-11-25 04:09:57

标签: java arrays

好的,所以我必须为我的一个作业制作一个驱动程序,我正在测试的是我的ArrayObject类。该类有一个“添加”方法:

[self addChildViewController:(A/B)];
[self didMoveToParentViewController:(A/B)];

因此,这会在用户在ArrayObject类中创建数组时添加一个对象。现在,我已经创建了一个ArrayObjectDriver类,在这个类中,我需要创建一个循环返回的菜单。 到目前为止:

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

这是我的代码片段只使用第一个选项。我在向阵列添加对象时遇到了什么问题。我不知道如何在main方法中将用户输入添加到数组中。发生的另一个问题是程序本身。我把它作为一个字符串来测试字符串输入,每次我运行程序时,它会一直停止运行,因为它要求我“输入我的对象:”。我如何阻止它,所以它会将一个字符串对象添加到我的数组?它不会向数组添加任何内容。

我的下一个问题是如何循环主方法。我在void方法(int选项)代码中尝试了一种递归方法,然后测试将drive.methods(选项)代码放在while循环中但是它不起作用。我是否必须一遍又一遍地调用selectionMenu()?

编辑:

  • 我宣布了扫描仪。

  • 我宣布了数组。

2 个答案:

答案 0 :(得分:0)

要从控制台获取用户输入,您可以使用Scanner类: Scanner user_input = new Scanner( System.in ); 看起来你有一个变量扫描仪,但是你发布的片段从未初始化过它。如果你想循环使用main方法,你可以这样做:

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;
    }
}

答案 1 :(得分:0)

在您的代码中,在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);  

        }
     }
相关问题