如何为对象正确定义getter和setter方法

时间:2019-11-06 22:34:01

标签: java object getter-setter

我有一个带有以下参数化构造函数的对象Customer:
TrackingSerializer

我需要为所有参数创建getter和setter方法。 我尝试了以下方法,但不确定是否正确。

Customer(String lastName, String firstName, String phone, String email)

3 个答案:

答案 0 :(得分:0)

在Java中寻址变量时,请小心使用大写/小写字母!

lastName LastName

是不同的变量

此外,您的吸气剂和吸气剂看起来是正确的。一般来说, getter是一个不带参数并返回实例变量值的函数,setter是一个带参数并使用其更新实例变量的函数。

如果愿意,您可以使设置器返回一个布尔值以标记更新是否成功(尽管对于当前示例而言,这不是必需的,因为我们可以假设更新将成功)。

public boolean setLastName(String newLastName){
   //Attempt to update the instance variable
   this.LastName = newLastName;

   //check that the instance variable has been successfully updated. 
   //Return true if that's the case. False otherwise
   return (this.LastName).equals(newLastName);
}

答案 1 :(得分:0)

无需使用newLastName。只需为方法参数使用相同的名称即可。

public String getLastName(){
    return lastName;
}

public void setLastName(String lastName){
    this.lastName = lastName;
}

如果使用的是Eclipse,则可以在Java文件中,右键单击->源->生成Getter和Setters

答案 2 :(得分:0)

这个问题比您想象的要深。实际上有几种不同的getter和setter样式,并且,如果您在团队中,则使用相同样式比选择“正确”样式更为重要。如果只是为了您自己,那么您拥有的一切就很好。如果是用于学校项目,则老师可能会有风格指导。如果是真正的工作,那么建筑师应该有一个风格指南。

例如,有些人喜欢这种二传手

class PersonalInfo {
    private String firstname;
    private String lastname;

    public PersonalInfo firstname(String firstname) {
        this.firstname = firstname;
        return this;
    }
    public PersonalInfo lastname(String lastname) {
        this.lastname = lastname;
        return this;
    }
}

允许使用类似的代码

PersonalInfo pi = new PersonalInfo()
.firstname("John")
.lastname("Smith");

如果您查找生成器样式的构造函数,这是获得相同结果的一种廉价方法,但实际上并未创建单独的类。

第二,如果您自己编写这些内容,则说明您犯了一个错误。如果您使用的编辑器没有创建它们的功能,请下载Eclipse并使用它。

第三,我宁愿完全不写它们,而是使用Lombok。它是一个生成所有重复样本的工具,使您的源代码混乱不堪。