如何正确定义对象的getter和setter方法[重复]

问题描述 投票:0回答:3

此问题已经在这里有了答案:

我有一个带有以下参数化构造函数的客户对象:Customer(String lastName, String firstName, String phone, String email)。我需要为所有参数创建getter和setter方法。我尝试了以下方法,但不确定是否正确。

public String getLastName() {
    return lastName;
}

public void setLastName(String newLastName) {
    this.LastName = newLastName;
}
java object getter-setter
3个回答
0
投票

在处理Java中的变量时,请小心使用大写/小写字母!

lastNameLastName

不同

此外,您的吸气剂和吸气剂看起来很正确。一般来说,一个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);
}

0
投票

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

public String getLastName(){
    return lastName;
}

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

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


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。它是一个生成所有重复样本的工具,使您的源代码混乱不堪。

© www.soinside.com 2019 - 2024. All rights reserved.