Effective Java 第二版 中文版 笔记(十四)在公有类中使用访问方法而非公有域

这本书中有很烦人的一点,他的定义的官方话看不懂啊?

域就是类中的成员变量,有时也叫字段,属性都是同一个意思。公有域就是能在其它类中直接访问的域,也就是带有域。

这就很容易明白了

class Test {
    private int a;   // 这是一个私有域,只能在本类访问
    public int b;    // 这就是一个公有域了,可以在其它类中直接访问
     
    // 这是保护域,这类域可以在本类及其子类,还有与在本类所在同一包下的其类
    // 中直接访问
    protected int c;
}

如果类可以在它所在的包的外部进行访问,就提供访问方法,以保留将来改变该类的内部表示法的灵活性。

如果类时包级私有的,或者是私有的嵌套类,直接暴露它的数据域并没有本质的错误

公有类永远都不应该暴露可变的域(属性)。

虽然还是有问题,但是让公有类暴露不可变的域其危害比较小。

但是,有时候会需要用包级私有的或者私有的嵌套类来暴露域,无论这个类是可变的还是不可变的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值