getters和setters是如何工作的?

2022-08-31 09:29:15

我来自php世界。你能解释一下什么是 getter 和 setters,并能给你一些例子吗?


答案 1

本教程并不是真正需要的。阅读有关封装的信息

private String myField; //"private" means access to this is restricted to the class.

public String getMyField()
{
     //include validation, logic, logging or whatever you like here
    return this.myField;
}
public void setMyField(String value)
{
     //include more logic
     this.myField = value;
}

答案 2

在Java中,getters和setter是完全普通的函数。唯一使他们成为围棋或二传手的是惯例。foo 的 getter 称为 getFoo,setter 称为 setFoo。在布尔值的情况下,getter 称为 isFoo。它们还必须具有特定的声明,如以下“name”的 getter 和 setter 示例所示:

class Dummy
{
    private String name;

    public Dummy() {}

    public Dummy(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

使用 getter 和 setter 而不是公开成员的原因是,它可以在不更改接口的情况下更改实现。此外,许多使用反射来检查对象的工具和工具包只接受具有 getter 和 setter 的对象。例如,JavaBeans必须具有getters和setter以及其他一些要求。


推荐