JAVA中的访问修饰符,主要用于设置类、属性、方法的访问级别,有以下四种:

修饰符同一个类同一个包子类任何地方
public(公共的)YYYY
protected(受保护的)YYY
default(默认的)YY
private(私有的)Y
1、public修饰符:

public修饰符表示公开的,公共的。不同类、不同包下都可以访问

1个java文件中只可以有一个public修饰的类,并且类名需要和文件名相同

2、protected修饰符

protected修饰符表示受保护的,它主要的作用是保护子类,子类可以用它修饰的成员,其他的不可以

protected修饰符可以被本类、同一个包中的类、不同包中的子类所访问到

protected可以修饰属性、方法,但是不能修饰外部类,可以修饰内部类

3、default修饰符

当定义变量、方法以及类时,没有写访问修饰符,则代表默认的修饰符default

default修饰的属性、方法、类,只能被本类或者同一个包中的其他类访问到,针对本包访问而设计,任何处于本包下的属性、方法、类、接口等,都可以相互访问

注:在接口中,默认的访问修饰符是public

4、private修饰符:

可用来修饰内部类、属性、方法

“私有的”,即被private修饰的属性、方法、类只能被该类的对象访问,其子类不能访问,更不能允许跨包访问

注意:private可以修饰内部类,不可以修饰外部类

实例解析:

首先创建两个包:testPackage1、testPackage2,包下分别创建两个类

Person类中有不同修饰符修饰的属性和方法

Person类内部可以访问Person对象的所有属性和方法 

同包的子类c2可以访问Person对象的public、protected、default修饰的属性和方法,无法访问private修饰的内容

同包的子类c2可以访问c2对象的public、protected、default修饰的属性和方法,无法访问private修饰的内容

 同一个包下的School类,可以访问Person对象中public、protected、default修饰的属性和方法,无法访问private修饰的内容

不同包的类Person1,只可以访问Person对象Public修饰的内容

不同包的子类School1,只可以访问Person对象Public修饰的内容

不同包的子类School1,可以访问School1对象Public、protected修饰的内容(即从父类Public继承到的内容)

总结:

person对象在不同类中可以访问到的权限如下

权限
person对象在person类中

访问person类的属性方法

person对象在本包的其他类中

访问person类的属性方法

person对象在其他包的类中

访问person的属性和方法

public是是是
protected是是否
default是是否
private是否否
person类的子类在不同包中可以继承到的属性和方法

权限同包子类不同包子类
public是是
protected是是
default是否
private否否

技术
下载桌面版
GitHub
Microsoft Store
SourceForge
夸克网盘
百度网盘
云服务器优惠
华为云优惠券
京东云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信