java中public,private,protected,(default)关键字

开发内部项目或者单独模块(非公共模块)时,对访问权限的修饰符的使用可能不是很注意,但在公共代码的书写或者是sdk一类的开发,访问修饰符就显得比较重要了。下面对public,protected,default,private的理解,提供方法:
1. 如果涉及到包之间的业务逻辑的调用,考虑public修饰类,属性。
2. 如果涉及到同包下类之间的调用或者需要提供继承复写扩展的业务方法,考虑使用protected修饰。
3. 如果只想在同包下使用且不想继承复写,我们考虑默认default(不写修饰符)即可。
4. 如果只想类内部调用,那就可以使用private。

alibaba的规范手册

20.【推荐】类成员与方法访问控制从严:

  • 如果不允许外部直接通过 new 来创建对象,那么构造方法必须是 private。
  • 工具类不允许有 public 或 default 构造方法。
  • 类非 static 成员变量并且与子类共享,必须是 protected。
  • 类非 static 成员变量并且仅在本类使用,必须是 private。
  • 类 static 成员变量如果仅在本类使用,必须是 private。
  • 若是 static 成员变量,必须考虑是否为 final。
  • 类成员方法只供类内部调用,必须是 private。
  • 类成员方法只对继承类公开,那么限制为 protected。
    说明: 任何类、方法、参数、变量,严控访问范围。过宽泛的访问范围,不利于模块解耦。思考:如果是一个 private 的方法,想删除就删除,可是一个 public 的 Service 方法,或者一个 public 的成员变量,删除一下,不得手心冒点汗吗? 变量像自己的小孩,尽量在自己的视线内,变量作用域太大,如果无限制的到处跑,那么你会担心的。

你可能感兴趣的:(Java基础知识)