你能修改getter和setter吗?

时间:2017-03-24 22:06:01

标签: java

你可以修改getter和setter吗?它们会被称为方法吗?

例如:

public class GameBoardNode(){
    //Data field
    private GameBoardNode[] config = new GameBoardNode[9];

    //Getter
    public GameBoardNode getConfig(int position){
        return config[position];
    }
}

2 个答案:

答案 0 :(得分:1)

“Getters”和“setters”只是常规方法,就Java语言而言,因此您可以根据需要实现它们。话虽如此,你应该考虑两件事。

  1. 虽然语言本身对getter和settern没有任何限制(至少不超过任何常规方法),但某些框架可能会。例如,如果您使用JSF,则应该避免尝试从您的视图中调用getter和setter。
  2. 程序员期望来自getter和setter的特定行为。每次偏离该行为时,都有可能使代码的可读性降低。

答案 1 :(得分:1)

您所做的已经是定义了一个自定义getter,同时请注意,默认情况下,您创建的任何类都没有getter和setter。

那么我们为什么要使用getter和setter? getter和setter是使用的方法,因为需要在类中封装值以防止在类内部破坏数据完整性的调用。

所有变量通常都是私有的,而getter / setter定义了如何获取/设置"从课堂上以适当的方式。

现在提到因为类的数据完整性很重要,setter通常会限制你改变类中数据的方式,另一方面,getters定义了用户可以看到的内容。并从课堂上获得。因此,给定类可以使用 private 隐藏内部有用的变量和方法,然后使用类自己的处理,同时提供更改并获取类应该的数据来自吸气者/安装者的报价