JAVA的四种访问修饰符

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

修饰符 同一个类 同一个包 子类 任何地方 public(公共的) Y Y Y Y protected(受保护的) Y Y Y default(默认的) Y Y 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 否 否
经验分享 程序员 微信小程序 职场和发展