修饰符,状态修饰符,final,static
修饰符
无修饰词:表示包访问权限,(friendly,Java中没有友元的概念,同一个包内可以访问,访问权限是包级访问权限)
public :成员是公开的,所有其他类都可以访问
private【最严格】:成员是私有的,只有当前类【当前java文件】可以调用,继承当前类的子类都不可以调用。
protected :【解决了 private的子类不能调用的缺陷,可以理解为一个继承系下的可以调用】
受保护权限,体现在继承,子类可以访问父类受保护的成员,同时相同包内的其他类也可以访问proteged成员。
|打个比方|
|–|–|
|public相当于外人可以调用 |
|private相当于家庭内可以调用 |
|protected相当于亲戚可以调用 |
默认/缺省,网上有人认为是JAVA比较失败的设计.很多开发组都明确禁止缺省修饰符.
缺省的含义: 包内可以调用,即只要是同一个包内,都可以调用. 局限性比protected 大,比public 小. 从’外人’的角度看,类似于public,但又比public 多了个不伦不类的包限定.
更新2022.1.10
之前看代码发现,
private的class里面是public的方法,不太明白,然后建立了一个测试类,就明白了
就是你可以new一个类对象,但是如果方法也是private,那么就不能在外部类调用该方法了,
所以,方法要用public
但是对于private中的变量,一般也用private,因为private类中的变量的修改一般是通过public 的set方法来修改的 。这样增加了安全性
final
static
用于修饰类的【成员变量、方法、static代码块】
静态方法/变量:static修饰的方法/变量。 不依赖于任何对象,可以直接访问
静态方法/变量特点:
- 非静态方法中可以访问静态方法【变量】
- 静态方法不能访问类的非静态成员变量和非静态成员方法
1、private修饰成员变量时,本类中可以通过实例对象.属性名进行访问。
2、其它类中不可以通过实例对象.属性名进行访问,需要通过原始类提供的get方法进行属性的访问。
3、当实例化一个对象之后,如果不给对象进行初始化。那么对象的属性会默认初始化。即:int型成员变量为0,引用类型成员变量为null,double类型成员变量为0.0,…
原文链接:https://blog.csdn.net/weixin_32531655/article/details/114058201
参考链接:
https://zhidao.baidu.com/question/432948728.html