获取并设置为java中的私有变量

时间:2013-11-14 22:20:19

标签: java get field private

美好的一天,

我是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()); 并且它工作正常但是我想知道如何最好地执行此操作,它在对象级别的行为以及性能的高低。

谢谢..

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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

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

每次更改entireNamefirstName时,这比更新lastName更容易维护。

答案 2 :(得分:0)

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