[英]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.