您的位置:首页 > Web前端

Effective Java(使类和成员的可访问性最小化、在公有类中使用访问方法而非公有域)

2017-09-21 16:53 281 查看
使类和成员的可访问性最小化



此条实际上就是讲解面向对象的三大特性之一——封装。

先说一下四个修饰符分别为:

  private——只有在声明该成员的类才能访问,其他类都不能访问。

  default(默认访问修饰符)——又称为“包级私有”,也就是说只有在同一个包下的类才能访问,就算是它的子类但不是在同一包下也不能访问。

  protected——有两种情况可以访问:1、和default一样同一个包下的类能够访问。2、它的子类也能访问。

  public——任何类都能访问。

为什么要将可访问性最小化呢?

1、实际上原因在于可维护,一旦你将可访问性置为protected或者public,意味着很大范围的类都能对它就行访问、修改、引用等等,如果你修改了这个变量意味着你要同时修改很多其他的类。但如果可访问性很小private的话,意味着你修改了这个变量,其他类并不知道啊,只对属性相关的类修改就行,不用担心还有其他哪个地方有用到。

  2、对于成员变量通常使用private类,如果完全不提供访问的渠道或者途径似乎也是“死”的,这是setter/getter方法,有人在初学时可能会发出疑问,既然提供了能访问修改这个成员变量的方法,那何不直接置为public呢?原因在于方法是可以提供检查的,它能检查传入的值是否符合规范。

  3、另外还有一条规则限制了降低方法的可访问性的能力,那就是如果方法覆盖了超类中的一个方法,子类中的访问级别就不允许低于超类中的访问级别。就是说如果父类的方法是public,那么子类就不能是private;如果父类的方法是protected,那么子类就只能是protected或者public。


在公有类中使用访问方法而非公有域


这一条实际上我们在上一条已经说到对于类的成员变量,我们通常对它的访问控制置为private,并为它提供getter/setter方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐