JAVA关键字--private protected public default

private

private表示私有,用于修饰类的变量以及方法,被private修饰的变量和方法只能被类本身的实例调用或者内部类通过[类名].this.[变量或方法名]进行调用。主要用于类中封装相应的不想对外暴露的属性或者方法。

protected

protected表示保护的,介于private与public之间的访问修饰,可以用来修饰变量和方法,不可修饰类,比较形象的比喻,protected只允许朋友,亲戚,以及子女,本身来访问自身的资源。具体化为继承关系,同一个包下面,内部类,以及本身可以访问。可以理解为,对于类所处的包外的类,就是private修饰的相关资源。

public

访问权限最大化的修饰,被public修饰的变量,类,方法都是无条件的对外开放使用的,应用场景基本上用于接口开放,方法开发,共享,util等

default

default基本上和protected区别不大,只不过对于子类default是不可用的,而protected却是可以用的,其他方面与protected基本相同,default默认为friendly修饰。一般用于封装,处理一些内部逻辑

图示访问情况

类内部 本包 子类 外部包
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private Y N N N

总结

因为楼主最近在学习设计模式并研究相关源码,然而对于处于码农阶段的楼主,最常用的就是public,很想在这篇帖子中写一些private,protected,default的应用场景。[相信了解设计以及架构的朋友能够说出一二].
对于private的应用场景我理解为类中一些不开放的处理和属性,在对外进行保密的时候并不开放出口,符合这类条件的都应该用private。但是private应该在实现类中进行声明,因为private的过于封闭,使得继承和实现的扩展性不是很好。由此推演,protected应该是在父类或者接口中修饰方法和变量的,以此达到继承的目的。而public则是修饰一个对外开放的util场景,接口场景使用到的修饰符。

猜你喜欢

转载自blog.csdn.net/zhang6622056/article/details/52700460