IDEA编程检验java中的四种修饰符的访问权限

IDEA编程检验java中的四种修饰符的访问权限

首先在IDEA的模块中创建两个包分别为com.tongleer和com.tongleer.app.分别在com.tongleer和com.tongleer.app两个包中建立People,Person,Teacher和Student,Computer,程序如下:

首先说明public的权限问题,分别比较本类、同包、同包子类、其他包、其他包子类的区别。

name是public的,如编译通过则说明有本类的访问权限。

People类是和Person建立在同一个包下的类,若编译通过,则说明拥有同包访问权限。


Teacher类是和Person建立在同一个包下的子类,若编译通过,则说明拥有同包子类的访问权限。

Student类是与Person不同包的子类,若编译通过,则说明拥有其他包子类的访问权限。

Computer是与Person不同包的其他类,里面引用了name这个属性,若通过编译,则说明拥有包外访问权限。

再来说明protect权限问题,这里要注意:public可以修饰任何类而且类名要与文件名相同,protected不可以修饰类。

Persond代码如下,其他四个类同上:


Person、People、Student能编译通过,就说明用protected修饰的类在本类、同包、同包子类中互相访问都是可以的,而Computer编译不通过说明protected不可以在包外没有继承关系的类中互相访问。

接着说明default权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。
这里要注意:default(不写默认指定default)同public一样可以修饰任何类而且类名要与文件名相同。
Person代码如图所示,其他四个类同上:

Person、People、Teacher能编译通过,就说明用default修饰的类在本类、同包或者同包子类中互相
访问都是可以的,而Student、Computer编译不通过说明default不可以在包外
不管有没有继承关系的类都不可以互相访问。

最后说明private权限问题,同样定义五个类Person、People、Teacher、Student、Computer,分别比较本类、同包、同包子类、其他包子类的区别。
这里要注意:private同protected一样不可以修饰类。
Person代码如图所示,其他四个类同上:

Person能编译通过而People、Teacher、Student、Computer编译不通过,就说明用private修饰的类只能在本类中无继承方法的类中访问。

综上所述,java中4种修饰符访问权限的区别及详解全过程就此演示完了,再一次说明java语言的严谨性和安全性,我们在以后使用这4中修饰符时创建一个类,这个类的权限尽量要小,这样才能减少漏洞和提高安全性,从而体现java面向对象的封装性。
总之:父类里面所有public和protected属性子类都能继承,但是只有当子类和父亲在同一个包中的时候才能继承默认级别属性。当我们在通过子类访问子类从父类继承的特性时,相对于父类的位置。

文章目录
  1. 1. IDEA编程检验java中的四种修饰符的访问权限
|