0

再会,

我是 JAVA 的新手,正在学习这门语言,我所学到的似乎是一门很棒的语言。我的问题与以下有关:

假设我有这样的课程:

public class Person{
   private String firstName;
   private String lastName;
   private int age;
   private String entireName;

   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 int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getEntireName() {
    return entireName;
}

public void setEntireName(String entireName) {
    this.entireName = entireName;
}

   public static void Main(String args[]){
          Person person = new Person();
          person.setFirstName("Jhon");
          person.setLastName("Adams");
          person.setAge(20);
          //Atention this line
          person.setEntireName(person.getFirstName()+person.getLastName());
       }
}

该语言允许我这样做:person.setEntireName(person.getFirstName()+person.getLastName()); 它工作得很好但是我想知道如何最好地做到这一点,它在对象级别的行为以及性能有多高或多低。

谢谢 ..

4

3 回答 3

4

你所做的是完全有效的,但不是很合乎逻辑。为什么不直接删除它,setEntireName()因为它只是结合了两个现有字段?

public String getEntireName() {
    return firstName + " " + lastname;
}
于 2013-11-14T22:21:59.473 回答
0

entireName通常,消除属性及其设置器更容易,并使用 getter 执行连接,如下所示:

public String getEntireName() {
    return firstName + " " + lastName;
}

entireName这也比每次更新firstNamelastName更改更容易维护。

于 2013-11-14T22:23:49.280 回答
0

这是有效的。没有性能差异,因为 JIT 编译器会根据需要优化此代码(只需将方法替换为字段访问)。

于 2013-11-14T22:24:28.370 回答