Java 构造函数addCustomer(String,String)未定义
我正在尝试创建这些命令,但在创建Java 构造函数addCustomer(String,String)未定义,java,Java,我正在尝试创建这些命令,但在创建AddPatron if (cmd.equals("addbook")) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Title: "); String title = br.readLine(); System.out.pri
AddPatron
if (cmd.equals("addbook")) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Title: ");
String title = br.readLine();
System.out.print("Author: ");
String author = br.readLine();
System.out.print("Publication Year: ");
String publicationYear = br.readLine();
return new AddBook(title, author, publicationYear);
} else if (cmd.equals("addpatron")) {
BufferedReader brr = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Name: ");
String name = brr.readLine();
System.out.print("Phone: ");
String phone = brr.readLine();
return new AddPatron(name, phone);
它说要添加构造函数,但是我已经完全按照
AddBook
的方式完成了。然而,唯一的区别是,AddPatron
类有两个额外的字符串,我没有包括它们,我想读入它们
public class AddPatron implements Command {
private final String name;
private final String phone;
private final String id;
private final String list_of_books_borrowed;
public AddPatron(String name, String phone, String id, String list_of_books_borrowed){
this.name = name;
this.phone = phone;
this.id = id;
this.list_of_books_borrowed = list_of_books_borrowed;
}
}
此构造函数需要4个不同的字符串
new AddPatron(name, phone);
但在这里,您只传递2个字符串。您需要传递另外两个或编写一个只接受名称和电话的新构造函数
注意,类代表事物,它们的名称通常应该是名词。另一方面,方法是动作,它们的名称应该是动词。因此,您可以有一个名为addPatron()
的方法和一个名为Patron
的类。命名一个类AddPatron
可能会令人困惑。如果编译器告诉您没有以两个字符串作为参数的构造函数,那么这意味着没有这样的构造函数。因此,创建它,或者修复代码,以便调用其中一个已存在的构造函数。您不能在需要时忽略参数。请提供一个。你真的有一个名为addconsor
的类吗?或者addconsor()
是一个方法吗?显示addconsor
类。错误是不言自明的:这里没有接受2个字符串作为参数的构造函数。注意,类表示事物,它们的名称通常应该是名词,例如Book
或Patron
。另一方面,方法是动作,它们的名称应该是动词。因此,您可以有一个名为addPatron()的方法
但是你应该给你的类命名为赞助人
。谢谢你的回答@code学徒,但是这是课堂作业的一部分,代码是由我的老师编写的,也像@roddyoffrozenpeas,我应该在构造函数中传递2个空参数吗?@KaziIlyas,它如何阻止你向构造函数传递4个字符串?@jbnizent i不明白你的意思事实上,你的老师写的代码并没有改变Java的工作方式。如果构造函数接受4个字符串作为参数,则必须向其传递4个字符串。不是2。如果您认为最后两个字符串应该为null,则传递null。如果你认为它们应该是其他的,那么传递其他的。如果你意识到你实际上应该要求用户输入id和借来的书籍列表,那么就这样做。
public AddPatron(String name, String phone, String id, String list_of_books_borrowed)
new AddPatron(name, phone);