【发布时间】:2018-08-18 18:11:05
【问题描述】:
我想创建一个可以有多个菜单的 Restaurant 对象。每个菜单可以有多个类别,每个类别可以有多个项目。每件商品都有名称、价格和描述。
--Company--
-Menu ONE-
-Menu Name-
-Category ONE-
-Category Name-
-Menu Item ONE-
-Menu Item Name
-Menu Item Price
-Menu Item Description
-Menu Item TWO-
-Category TWO-
-Menu TWO-
没有构造函数、getter/setter 或方法的示例类。
拥有一系列菜单的公司
public class Company
{
// Class constants
// Class variables
private String companyName; // Stores company name
private String hours; // Restaurant hours
private String phoneNumber; // Restaurant phone number
private Menu[] menuList; // Array of menu objects
private int menuCount; // Number of menus in the array
}
包含类别数组的菜单
public class Menu
{
// Class constants
// Class variables
private String menuName; // Name of Menu
private Category[] categoryList; // Array of category objects
private int categoryCount; // Number of categories in the array
}
包含菜单项数组的类别
public class Category
{
// Class constants
// Class variables
private String categoryName; // Name of Menu
private MenuItem[] menItemList; // Array of MenuItem objects
private int menuItemCount; // Number of menu items in the array
}
具有名称、价格和描述的单个订单项
public class MenuItem
{
// Class constants
// Class variables
private String name; // Name of Menu Item
private float price; // Price of the Menu Item
private String description; // Description of the Menu Item
}
在驱动程序类中,如果我只能访问公司的方法,我将如何更改菜单项中的任何内容?
我曾想过为每个私有数组项设置一个 getter,但是将 3 层向下挖掘到私有数组中似乎很难实现。不像Company.Menu.Category.MenuItem.editName(newName);那么简单
注意* 我对“应该使用链接列表或 ArrayList”的答案不感兴趣。程序要求需要基本数组。
如果我需要更清楚,或者您是否想要 SSCCE,请告诉我。
【问题讨论】:
-
数据结构越复杂,ETL 越复杂。使用 getter/setter 并深入挖掘是您最好的选择。
-
使用 getter/setter 访问私有成员变量
标签: java arrays private private-members