Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,组合类_Java_Class_Printing - Fatal编程技术网

Java,组合类

Java,组合类,java,class,printing,Java,Class,Printing,我遇到了一个问题,最近学了Java,现在我正在做一些作业,但似乎无法找到解决方案,我得到的结果如下,我无法找到如何代替随机的menu@somenumber例如,第一个是午餐,是的,我知道我仍然需要打印实际的菜单项 “令人惊奇”餐厅 菜单:Menu@2389b9bd 菜单:Menu@27013985 餐厅“好的” 菜单:Menu@41675ec4 菜单:Menu@697eb767 “跛脚”餐厅 菜单:Menu@7e3b014c 菜单:Menu@53d26552 代码: class Re

我遇到了一个问题,最近学了Java,现在我正在做一些作业,但似乎无法找到解决方案,我得到的结果如下,我无法找到如何代替随机的menu@somenumber例如,第一个是午餐,是的,我知道我仍然需要打印实际的菜单项

“令人惊奇”餐厅

  • 菜单:Menu@2389b9bd
  • 菜单:Menu@27013985
餐厅“好的”

  • 菜单:Menu@41675ec4
  • 菜单:Menu@697eb767
“跛脚”餐厅

  • 菜单:Menu@7e3b014c
  • 菜单:Menu@53d26552
代码:

class RestaurantTest{
公共静态餐厅[]init()
{
MenuItem[]awsome午餐={new MenuItem(“Chicken”,5.2),new MenuItem(“Sarma”,3.1)};
MenuItem[]Awsometener={新MenuItem(“牛排”,10.2),新MenuItem(“鱿鱼”,8.2)};
MenuItem[]OkayLunch={新MenuItem(“烤肉串”,6.1),新MenuItem(“Ćevapi”,3.7)};
MenuItem[]Okaydenner={新MenuItem(“Sharksteak”,11.4),新MenuItem(“Pizza”,6.2)};
MenuItem[]Lame午餐={new MenuItem(“Burek”,2.5),new MenuItem(“Wiener Schinizel”,4.3)};
MenuItem[]LameDiner={新MenuItem(“章鱼”,11.4),新MenuItem(“Kalja”,0.1)};
Menu[]MenuAwsome={新菜单(“午餐”,awsome午餐),新菜单(“晚餐”,awsome晚餐)};
菜单[]MenuOkay={新菜单(“午餐”,好的午餐),新菜单(“晚餐”,好的晚餐)};
菜单[]菜单名={新菜单(“午餐”,跛脚午餐),新菜单(“晚餐”,跛脚晚餐)};
餐厅[]餐厅名单={新餐厅(“Awmome”,“Vukovarska 111”,MenuAwsome),新餐厅(“Okay”,“Stradun 222”,MenuOkay),新餐厅(“Lame”,“Ilica 333”,MenuLame)};
归还存货清单;
}  
公共静态void main(字符串[]参数){
餐厅[]餐厅列表=init();
餐厅awsome=餐厅名单[0];
餐厅OK=餐厅名单[1];
餐厅lame=酒店名单[2];
System.out.println(awsome.getName());
System.out.println(“---------------------------------------------------”;
System.out.println();
System.out.println(“运行‘餐厅菜单搜索’:”);
System.out.println();
System.out.println(“---------------------------------------------------”;

对于(int i=0;i基本上,您的问题在这一行:

System.out.println("- Menu:" +  (listOfRestaurants[i].getMenu())[j]);
您得到的随机数是菜单类型的对象的引用地址。这个数字意味着您正在打印对象菜单的toString(),如果没有过度渲染,它将打印对象的引用。因此,要解决这个问题,您可以为菜单调用getName()(如果已定义),因此您的语句如下所示:

System.out.println("- Menu:" +  (listOfRestaurants[i].getMenu())[j].getName());
Stirng toString(){
    return this.name;
}
或者定义一个toString(),它将按如下方式打印菜单名:

System.out.println("- Menu:" +  (listOfRestaurants[i].getMenu())[j].getName());
Stirng toString(){
    return this.name;
}

您应该从
菜单
类打印一些属性,而不是对象引用,如
菜单:Menu@7e3b014c
。例如

Menu m = listOfRestaurants[i].getMenu()[j];
System.out.println("Menu "+m.getName());
MenuItem[] launch = m.getLaunch();
for (MenuItem mi: launch)
  System.out.println("MenuItem "+mi.getName()+",  price "+mi.getPrice());  

您是否在类中重写了
toString()
method ot
Restaurant
MenuItem
菜单类中的方法是什么?我仍然没有找到打印实际膳食及其价格的部分,那就是MenuItem@user2627736您应该在第二个循环中打印它,如示例所示。