需要帮助创建类以反向返回名称并返回缩写

时间:2018-07-28 07:48:56

标签: java

对于家庭作业,我需要编写一个具有两个构造函数的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());
  }


}

2 个答案:

答案 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来区分类成员和局部变量。