2013-02-21 79 views
-1

我是java新手,做得不好,需要一些帮助。我有一个名为“RestaurantObject”的类,我试图从我的主类中的该类创建一个对象。我有一个问题,因为该对象中的一个变量是一个数组。我真的不知道该放什么。初始化一个包含数组的类的新对象

这里是我的主:

public class MyRestaurantObject { 
    public static void main(String[] args) { 

    RestaurantObject mcDonalds = new RestaurantObject("McDonalds", "McDonalds Menu", **WHAT GOES HERE?**); 

这里是我的班 “RestaurantObjects” 代码

public class RestaurantObject { 

private static final Object[] String = null; 
private String restaurantName; 
private String menu; 
private String [] employees; 


public RestaurantObject(String name, String menu, String [] employees){ 
setRestaurantName(name); 
setMenu(menu); 
setEmployees(employees); 
} 


//restaurantName 
public String getRestaurantName(){ 
return restaurantName; 
} 

private void setRestaurantName(String name){ 
restaurantName = name; 
} 

//menu 
public String getMenu(){ 
return menu; 
} 

private void setMenu(String menu){ 
this.menu = menu; 
} 

//employees 
public String[] getEmployees(){ 
return employees; 

} 

private void setEmployees(String [] employees){ 
this.employees = employees; 
} 

} 

我知道我不是这样做的权利。请帮忙!

谢谢!

此外,如果我的任何术语错误,请纠正我。

+0

不完全重复,但它应该有所帮助:http://stackoverflow.com/q/4436458/422353 – madth3 2013-02-21 01:22:24

回答

0

那么有两种选择:

1创建前阵你创建你RestaurantObject(这个类是真的只是被称为Restaurant

String[] emplArr = new String[]{ "Bob", "Alice", "Fred"}; 
RestaurantObject mcDonalds; 
mcDonalds = new RestaurantObject("McDonalds", "McDonalds Menu", emplArr); 

2 Intialize在构造函数中的静态初始化器阵列呼吁RestaurantObject

RestaurantObject mcDonalds; 
mcDonalds = new RestaurantObject("McDonalds", "McDonalds Menu", new String[]{ "Bob", "Alice", "Fred"}); 
+0

我的老师一直称他们为“对象”,他具体说明应该调用这个类。它也困扰我。我怎样才能在构造函数调用中初始化数组?非常感谢你。 – 2013-02-21 01:23:22

+0

那么'Class'和'Object'是有区别的。你可以将'Class'想象成一个Object的蓝图,它记录了该类的'Objects'所拥有的所有属性。另一方面,“对象”是“Class”的特定实例。所以在你的班级中,“麦当劳”是你的“餐厅”类的实例,它是麦当劳餐厅特有的。 – 2013-02-21 01:25:54

+0

谢谢!有效。 – 2013-02-21 01:27:14

2

只是在第三个参数传递一个新的字符串数组。

RestaurantObject mcDonalds = new RestaurantObject("McDonalds", "McDonalds Menu", new String[] {"Value1", "Value2"}); 
+0

谢谢!有效。非常感激。 – 2013-02-21 01:26:53

0

你可以做

RestaurantObject mcDonalds = new RestaurantObject(
    "McDonalds", "McDonalds Menu", new String[] {"John Doe", "Jane Doe"}); 

String[] employees = new String[] {"John Doe", "Jane Doe"}; 
RestaurantObject mcDonalds = new RestaurantObject(
    "McDonalds", "McDonalds Menu", employees); 

String[] employees = new String[2]; 
employees[0] = "John Doe"; 
employees[1] = "Jane Doe"; 
RestaurantObject mcDonalds = new RestaurantObject(
    "McDonalds", "McDonalds Menu", employees); 

的注意事项对于后者:当您创建一个这样的数组,你必须知道它的大小,有时可能会很烦人。这就是为什么很多人会喜欢使用ArrayList,它们的行为或多或少像弹性数组,也就是说,当添加n项时它会自动展开。

+0

谢谢!我感谢帮助! – 2013-02-21 01:27:43

1

我猜你还没有学习Java可变参数,但是这是一个使用它们的完美例子。然后,你可以去

public RestaurantObject(String name, String menu, String...employees) { 
    setRestaurantName(name); 
    setMenu(menu); 
    setEmployees(employees); 
} 

后来,

RestaurantObject mcDonalds = new RestaurantObject(
     "McDonalds", "McDonalds Menu", "John Doe", "Jane Doe"); 

如果您不能使用或还没有学会可变参数呢,@fvu版2是我的偏好。