-1

只是通过 get/set 方法,我的输出有问题。它不显示对象的名字/姓氏,而是显示空/空。

任何人都可以提供任何见解,我不熟悉 get/set 方法。

代码

public class Person {

private String firstName;
private String lastName;    

public Person (String a, String b){

a = firstName;
b = lastName;
}

public String getfirstName(){

     return firstName;
}

public void setfirstName(){

     this.firstName = firstName;
}

public String getlastName(){

    return lastName;
}

public void setlastName(){

    this.lastName = lastName;
}

public String toString() {

String s = "First name:" + firstName + "Last name:" + lastName;
return s;

}
}

这是我的类,只是为了创建对象并运行 toString 方法

public class PersonDriver {

public static void main(String[]args){

    Person p1 = new Person ("Thomas", "Brown");

    System.out.print(p1.toString());
 }
}
4

7 回答 7

2

您需要将参数分配给实例变量,而不是相反。您当前正在做的是重新分配a并将b其传递给构造函数,而您需要将值分配给类的a和字段。bfirstNamelastname

public Person (String a, String b){
    firstName = a;
    lastName = b;
}
于 2013-11-05T09:56:16.747 回答
1

您在构造函数中反转了变量

您需要更改以下代码

public Person (String a, String b){

   a = firstName;
   b = lastName;
}

public Person (String a, String b){

    firstName = a;
    lastName = b;
}
于 2013-11-05T09:58:18.317 回答
1

主要二传手必须是

public void setFirstName(String firstName){

     this.firstName = firstName;
}


public void setLastName(String lastName){

    this.lastName = lastName;
}
于 2013-11-05T09:59:41.703 回答
0

你的设置者应该接受一个参数 - 要设置的值。您的构造函数应该将参数的值分配给类属性,而不是相反。

于 2013-11-05T09:58:02.410 回答
0

我认为构造函数必须像

public Person (String a, String b){
    firstName = a;
    lastName = b;
}
于 2013-11-05T09:58:12.140 回答
0

您需要交换变量。您为对象的值分配参数。

public Person (String a, String b){

firstName= a;
lastName= b;
}

没有参数,您的 set 方法也毫无用处:

public void setlastName(String parameter){

this.lastName = parameter;

}

于 2013-11-05T09:59:37.043 回答
0

你确定你的方法不应该更符合这个吗?

public class Person {

  private String firstName;
  private String lastName;    

  public Person (String a, String b){

   firstName=a;
   lastName=b;
  }

  public String getfirstName(){

    return firstName;
  }

  public void setfirstName(String firstName){

    this.firstName = firstName;
  }

  public String getlastName(){

    return lastName;
  }

  public void setlastName(String lastName){

    this.lastName = lastName;
  }

  public String toString() {

  String s = "First name:" + firstName + "Last name:" + lastName;
  return s;

  }
  }

您需要将要设置变量的值传递给 setter 方法。除此之外,就像提到的其他人一样,您在构造函数中交换了变量名。:)

于 2013-11-05T10:01:23.893 回答