首页 > 解决方案 > 需要帮助创建类以反向返回名称并返回首字母

问题描述

对于家庭作业,我需要编写一个具有两个构造函数的类 Name,一个具有 3 个参数用于第一个、最后一个和中间名首字母,一个具有两个参数用于第一个和最后一个。我必须使方法 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());
  }


}

标签: java

解决方案


问题是,你调用没有参数的方法

teacher.getInitials()

但是您的类中定义的方法分别采用 2 个和 3 个参数

getInitials(String first, String last)
getInitials(String first, char middle, String last)

这些方法不需要任何参数,因为必要的数据(第一个、中间、最后一个)已经存储在类成员中。方法应该使用这些。其他方法也是如此。

例如getInitials()(只有名字和姓氏)

public String getInitials() {
    String a = "";
     a += firstName.charAt(0);
     a += lastName.charAt(0);
    return a;
}

推荐阅读