Java 数组,不适用于参数
我想在数组来宾中添加一个来宾,你们能看到我做错了什么吗,或者我不能调用字符串、构造函数、构造函数吗 错误是:类型表中的addGuestGuest方法不适用于参数字符串Tea和Cake。我想把一个客人放到一个数组里 这是我的密码Java 数组,不适用于参数,java,arrays,inherited-constructors,Java,Arrays,Inherited Constructors,我想在数组来宾中添加一个来宾,你们能看到我做错了什么吗,或者我不能调用字符串、构造函数、构造函数吗 错误是:类型表中的addGuestGuest方法不适用于参数字符串Tea和Cake。我想把一个客人放到一个数组里 这是我的密码 guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge")); 类Guest的构造函数如下所示: public Guest(String
guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
类Guest的构造函数如下所示:
public Guest(String name, Tea newTea, Cake newCake)
Tea类的构造函数是:
public Tea(String name, boolean suiker, boolean melk)
班级蛋糕:
public Cake(String name) {
this.name = name;
}
addGuest方法:
public void addGuest(Guest guest)
我想做的是:
guests[0]=table.addGuest(new Guest("Alice"),new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
您向方法传递了错误的参数。addGuest只能在程序中使用guest参数。您可以使用重载方法来支持addGuestString、Tea、Cake等参数,也可以只传递来宾姓名作为参数。您应该使用
Guest g = new Guest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
table.addGuest(g);
而不是
guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
因为您将Guest构造函数所需的参数传递给了错误的methodaddGuest,后者需要实际的Guest对象
编辑
此外,这也行不通
guests[0]=table.addGuest(...);
因为桌上的客人。。。是void类型,因此它不会返回任何内容,因此您将得到一个编译器错误。
我建议重新考虑来宾[]的使用,您可能可以使用LinkedList或ArrayList之类的集合来解决此问题。了解这是哪种编程语言会有帮助。编程语言是Java这与继承的构造函数有什么关系?错误消息非常清楚-addGuest方法只接受一个类型为Guest的参数,而不是字符串、Tea和蛋糕。在表上调用addGuest,然后将addGuest的返回值显式分配给guests[0]guests的第一个元素。这不是试图将来宾放入数组,请重新思考您的代码!是的,但是类guest的构造函数类似于“public GuestString name,Tea newTea,Cake newCake”