我无法弄清楚如何访问Main中另一个类中的数组中生成的对象。 Psuedo为我试图做的事情。
希望代码可以解释得更好。
我的主要课程
Restaurant RestaurantObject = new Restaurant();
Table TableObject = new Table();
System.out.println("Max Tables In Restaurant? (Interger)");//Set Max Tables
Scanner smax_tables = new Scanner(System.in);
int max_tables = smax_tables.nextInt();
RestaurantObject.create_table_array(TableObject, max_tables);
我的餐厅课程
private Table[] TableList; //and other random variables
//other methods
public void create_table_array(Table table,int number) {
Table[] TableList = new Table[number];
int i = 0;
for(i = 0; i < number; i++) {
TableList[i] = table;
}
public Restaurant() {
}
我的表CLass
int max_amount;
public int getMax() {
return max_amount
}
Table(int number) {
this.max_amount = number;
}
我想要的行动
RestaurantObject.Table1(10) //set max to 10 in table object
System.out.printf("max amount for table1 is %d",Restaurant.Table1.getMax()
现在我正在重新审视它。我是否必须提示用户对表进行编辑,获取并返回数组中的表对象?任何帮助都会很棒,谢谢
答案 0 :(得分:0)
如果我的问题正确,您想要访问此处创建的数组:
public void create_table_array(Table table,int number) {
Table[] tableList = new Table[number];
int i = 0;
for(i = 0; i < number; i++)
tableList[i] = table;
}
您可以做的是将方法从void
更改为Table[]
并返回创建的数组。像这样:
public Table[] create_table_array(Table table,int number) {
Table[] tableList = new Table[number];
int i = 0;
for(i = 0; i < number; i++)
tableList[i] = table;
return tableList;
}
现在在您的主程序中,您可以调用这样的方法:
Table[] tables = RestaurantObject.create_table_array(TableObject, max_tables);
现在您可以按索引访问所有表。例如
for(int i = 0; i < tables.length; i++)
//do something to tables[i]
此外,您应该坚持使用JAVA命名约定并使用camelCase作为变量名称。例如:TableList
==&gt; tableList
等...