对于家庭作业,我需要编写一个具有两个构造函数的Name类,一个构造函数的first,last和Middle中间名带有三个参数,一个构造函数的first和last仅两个参数。我必须使方法getNormalOrder,getReverseOrder和getInitials。因此,如果名称是John W Smith,则getReverseOrder将返回Smith,John W.,getInitials将返回JWS,而getNormalOrder将定期返回它。我不断收到错误消息:
method getInitials in class Name cannot be applied to given types;
当我在另一个文件中测试该方法时。我将代码放在下面。
class Name {
private String firstName;
private String lastName;
private char middleName;
public Name(String firstName, char middleName, String lastName) {
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
}
public Name(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getReverseOrder(String first, char middle, String last) {
String a = "";
a += last;
a += ", ";
a += first;
a += " ";
a += middle;
return a;
}
public String getReverseOrder(String first, String last) {
String a = "";
a += last;
a += ", ";
a += first;
return a;
}
public String getInitials(String first, char middle, String last) {
String a = "";
a += first.charAt(0);
a += middle;
a += last.charAt(0);
return a;
}
public String getInitials(String first, String last) {
String a = "";
a += first.charAt(0);
a += last.charAt(0);
return a;
}
}
我还没有写getNormalOrder。这就是我现在正在测试的方式。我想我做的一切完全错误。
public class NameTest {
public static void main (String [] args) {
Name teacher = new Name("John", 'W', "Smith");
Name tf = new Name("John", "Smith");
System.out.println(teacher.getInitials());
}
}
答案 0 :(得分:1)
问题是,您调用的方法没有参数
n,m
但是在您的类中定义的方法分别带有2和3个参数
teacher.getInitials()
这些方法不需要任何参数,因为必要的数据(第一,中间,最后)已经存储在类成员中。该方法应使用这些。其他方法也是如此。
以getInitials(String first, String last)
getInitials(String first, char middle, String last)
(仅包含名字和姓氏)为例
getInitials()
答案 1 :(得分:0)
您的getInitials方法不需要任何参数。它应该使用类成员返回一个值。您可以使用this.first来区分类成员和局部变量。