美文网首页我爱编程
[Effective Java] (14)在公有类中使用访问方法

[Effective Java] (14)在公有类中使用访问方法

作者: QyQiaoo | 来源:发表于2018-05-26 21:38 被阅读0次
    // Degenerate classes like this should not be public
    class Point {
        public double x;
        public double y;
    }
    
    • 由于这种类的数据域是可以直接访问的,并没有提供封装(encapsulation)的功能。如果不改变API,就无法改变它的数据表示法,也无法加强任何约束条件,在被访问的时候也无法采取任何辅助的行动。
    • 应该用公有访问方法(getter)和公有设置值方法(setter)的类代替。如下代码所示:
    class Point {
        public double x;
        public double y;
    
        public Point(double x, double y) {
            this.x = x;
            this.y = y;
        }
    
        public double getX() { return x; }
        public double getY() { return y; }
    
        public void setX() { this.x = x; }
        public void setY() { this.y = y; }
    }
    
    • 如果类可以在它所在包的外部进行访问,就提供访问方法;
    • 如果类是包级私有的,或者是私有嵌套类,直接暴露它的数据并没有本质的错误。

    相关文章

      网友评论

        本文标题:[Effective Java] (14)在公有类中使用访问方法

        本文链接:https://www.haomeiwen.com/subject/ctcvjftx.html