从不同类访问数组中的对象

时间:2014-09-22 23:43:04

标签: java arrays

我无法弄清楚如何访问Main中另一个类中的数组中生成的对象。 Psuedo为我试图做的事情。

  • 在主要CLass提示用户中,了解餐厅中的表数
  • 取数字n,在Restaurant Class
  • 中创建n个Table对象的数组
  • 访问创建的每个tableobject,并能够通过main
  • 中的构造函数向其添加值

希望代码可以解释得更好。

我的主要课程

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

我想要的行动

  • 运行程序并输入5表示最大表格
  • 在餐厅创建的5张桌子
  • RestaurantObject.Table1(10) //set max to 10 in table object
  • System.out.printf("max amount for table1 is %d",Restaurant.Table1.getMax()

现在我正在重新审视它。我是否必须提示用户对表进行编辑,获取并返回数组中的表对象?任何帮助都会很棒,谢谢

1 个答案:

答案 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等...