访问由不同类别的数组组成的对象

问题描述:

我在尝试弄清楚如何访问Main中另一个类中的数组中创建的对象时遇到问题。 Psuedo为即将尝试做什么。访问由不同类别的数组组成的对象

  • 在用于表的号码在餐厅
  • 取数n主类提示用户,在餐厅类创建否表对象数组
  • Access创建每个tableobject并能够通过将值添加到它构造函数全部从主

希望代码能更好地解释。

我的主类

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() { 

} 

我的表类

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()

现在,IM RE-看着它。我将不得不提示用户进行编辑,获取并返回数组中的表格对象吗?任何帮助将是巨大的,感谢

,如果我得到你的问题吧,你要访问这里创建数组:

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命名约定,并使用驼峰的变量名。例如:TableList ==>tableList等...

+0

正是我在找的,谢谢 – Jovis13 2014-09-23 01:37:42