Getter-Setter和私有变量

同义的

如果我可以通过getter返回的引用来更改private变量的值,那么它不是绕过setter方法吗?这是否违背了getter-setter和私有变量的目的

public class Test{

private Dimension cannotBeChanged;

public Test(int height, int width)
{
    if(height!=3)
       cannotBeChanged.height = height;
    if(width!=3)
       cannotBeChanged.width  = width;
}

public Dimension getDimension()
{
    return cannotBeChanged;
}


public void setDimension(int height, int width)
{
    if(height!=3)
       cannotBeChanged.height = height;
    if(width!=3)
       cannotBeChanged.width  = width;    
} 

 public static void main(String [] args)
{
    Test testOne = new Test(5,5);
    Dimension testSecond = testOne.getDimension();
    testSecond.height = 3; //Changed height and width to unwanted values
    testSecond.width= 3;
}
阿比玛兰·库格萨桑

是的,它确实。我从《清洁法规》这本书的吸气剂和吸脂剂中得出以下结论如果您真的接受它,可以使用它。

  1. 非常邪恶:公共领域。
  2. 有点邪恶:不需要的getter和setter。
  3. 良好:仅在真正需要的地方使用Getter和Setters-使类型公开使用其状态的“较大”行为,而不是仅将类型视为由其他类型操纵的状态存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有公共 getter 和 setter 的私有成员的目的是什么?C#

来自分类Dev

Java Json Jackson 在没有 getter 和 setter 的情况下保存私有字段

来自分类Dev

Python中成员变量的Getter和Setter

来自分类Dev

JavaScript getter和setter

来自分类Dev

PHP的getter和setter

来自分类Dev

PHP的getter和setter

来自分类Dev

getter,setter和loops

来自分类Dev

Getter 和 Setter 方法

来自分类Dev

Java中的对象通信,没有带有getter和setter的静态变量

来自分类Dev

在公共实例上使用 getter 和 setter 来设置该类的私有实例时,会设置哪个类实例的属性?

来自分类Dev

使用Setter或Boolean Getter的变量

来自分类Dev

Javascript类返回私有变量而不是getter

来自分类Dev

Swift的setter和getter问题

来自分类Dev

Getter和Setter与Oject键值对

来自分类Dev

Haskell,镜头,Getter和Setter

来自分类Dev

Python Setter和Getter命名

来自分类Dev

Haskell,镜头,Getter和Setter

来自分类Dev

如何创建getter和setter

来自分类Dev

什么是getter和setter方法?

来自分类Dev

Var getter和setter的困惑

来自分类Dev

getter和setter中的NullPointerException

来自分类Dev

Java setter和getter方法

来自分类Dev

Doctrine 创建 setter 和 getter?

来自分类Dev

Setter、Getter 和子类的问题

来自分类Dev

对 setter 和 getter 感到困惑

来自分类Dev

如何为指针类变量做setter和getter函数?

来自分类Dev

使用Lombok @Getter和@Setter维护变量的命名标准

来自分类Dev

具有defineProperty的Getter / Setter

来自分类Dev

只读字段和私有getter属性之间的区别