❝ 所谓访问权限,指的就是本类中的成员变量、成员方法对其他类的可见性
❞
试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可能修改后就导致项目无法运行,对客户端的代码就会造成一定的影响
引入访问权限的概念就变得尤为重要
Java中有四种访问权限,分别是「public、protected、包访问权限(默认)、private」,如果省略了访问修饰符,那默认访问权限为「包访问权限」。 这四种权限从「最大权限」到「最小权限」分别是: public > protected > 包访问权限> private
类的成员变量和方法访问权限
放一个看了很久却不一定记住的表:
ble data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">
「包访问权限:」 没有任何修饰符的权限就是「包访问权限」,意味着当前包的所有类都可以访问这个成员,如表中所示,对于本包之外的类,这个成员就变成了「private」,访问不了
「public:」 被public修饰的成员对任意一个类都是可用的,任何一个类都可以访问到,通过操作该类的对象随意访问「public」成员
「protected:」 在相同的class内部,同一个包内和其他包的子类中能被访问。要理解「protected」权限,就需要了解「继承」,因为这个权限处理的就是继承相关的概念,继承而来的子类可以访问「public、protected」,
「private:」 除了包含这个成员的类之外,所有类都无法访问这个成员,相当于自我封闭,防止其他类改变或删除这个方法
类的访问权限
Java中的访问权限也可以用来修饰类。不过需要注意,对于普通类而言,类的访问权限仅有「public」和「包访问权限」
· 如果一个类声明的时候用了「public」,则该类的类名必须与文件名一致,包括大小写,如果不匹配,会有编译错误
· 每个编译单元(文件)都只能有一个public类
· 当然不带public也是可以的,这时可以随时对文件命名
总结
对成员进行访问控制还是非常重要的,可以防止他人触碰那些不该触碰的部分,也可以清楚的了解哪些是重要的,哪些是可以忽略的,简化了对类的理解