为什么输出错误(获取/设置方法)

时间:2013-11-05 09:55:26

标签: java

只是通过get / set方法,我的输出有问题。它不显示对象的First / Last名称,而是显示null / null。

任何人都可以提供任何见解,我不熟悉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());
 }
}

7 个答案:

答案 0 :(得分:2)

您需要将参数分配给实例变量,而不是相反。您目前正在做的是重新分配传递给构造函数的ab,而您需要将ab的值分配给{{1该类的{}和firstName个字段。

lastname

答案 1 :(得分:1)

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

您需要更改以下代码

public Person (String a, String b){

   a = firstName;
   b = lastName;
}

public Person (String a, String b){

    firstName = a;
    lastName = b;
}

答案 2 :(得分:1)

主要设置者必须是

public void setFirstName(String firstName){

     this.firstName = firstName;
}


public void setLastName(String lastName){

    this.lastName = lastName;
}

答案 3 :(得分:0)

你的setter应该接受一个参数 - 要设置的值。你的构造函数应该为类属性的参数赋值,而不是反过来。

答案 4 :(得分:0)

我认为构造函数必须像

public Person (String a, String b){
    firstName = a;
    lastName = b;
}

答案 5 :(得分:0)

您需要交换变量。您可以为对象赋值参数。

public Person (String a, String b){

firstName= a;
lastName= b;
}

你的set方法也没用参数:

public void setlastName(String parameter){

this.lastName = parameter;

}

答案 6 :(得分: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方法传递给您想要设置变量的值。除此之外,与其他提到的一样,您在构造函数中交换了变量名称。 :)