黑马程序员技术交流社区

标题: 个人总结——JAVA继承中的访问权限 [打印本页]

作者: DH柯    时间: 2015-2-4 20:44
标题: 个人总结——JAVA继承中的访问权限

一、提供类内访问权限的Private:

     Private是“私有”之意,它对方法或变量声明之后,该变量或方法只能在本类中使用,也即在A类中声明了一个X的Private型变量和Y的Private型方法,则在另一个B类中创建A类的对象,该对象将不能访问自己的X变量和Y方法。注意:Private不能用来声明一个类的权限,因为类的单位比类中的方法及变量的单位更大。

二、提供包内访问权限的默认Firendly:

Firendly是“友好”之意,它可以用来声明类、方法和变量。表示该类、方法和变量在该包中都可以获得访问权限。需要说明的是该权限是默认的,修饰符Firendly必须省略不写。还有一个总结性的说法就是:包的单位比类要大一级,也就是组成包的单位是一个一个的类,这些类可能在同一个JAVA源文件中,也可能不在同一个JAVA源文件中,但在同一个JAVA源文件的类肯定是在同一个包中,这一点是不含糊的。最后建议需要放在同一个包中的类尽可能将相关联的代码写在同一个源文件中。

三、提供包内及包外子类访问权限的Protected:

Protected是“受保护”之意,它可以用来声明方法和变量(不能用来声明类,因为类和包的层次是分明的)。表示该方法和变量在该包内及包外的子类中都可以获得访问权限。对这种访问权限来讲,如果继承关系层次多且与其它并列类发生关系时,其访问权限的分析将趋向于复杂化。对于继承的东西,子类不必创建父类的对象即可通过子类的对象在子类中直接访问,这一点首先不应该含糊。而对于非继承的东西在另一个没有继承关系的类中使用时有以下几种说法:

A、首先,在子类中,可以不创建父类对象,子类的对象便可在工程项目内的任何地方直接访问子类继承的东西和自己定义的东西。

B、其次,在另一个非继承关系的类中,用一个类的子类在该类中创建的对象对该子类的东西的访问作如下规定:

1、该子类与当前类在同一个包中:该子类可以访问自己定义的东西,但对该子类继承的东西有如下说法:

(1)、继承的东西所归属的祖先类与当前类在同一包中,则该子类对象可以任意访问。

(2)、继承的东西所归属的祖先类与当前类不在同一包中,则该子类对象不能访问。

2、该子类与当前类不在同一个包中:由于当前类与该子类不具有继承关系,所以该子类不能访问所有属于 自己的东西。

三、提供工程项目内访问权限的Public:

Public是“公共”之意,它可以用来声明类、方法和变量。表示该类、方法和变量在该包内及包外的任何工程项目内都可以获得访问权限。对这种访问权限来讲,它是最为自由和宽松的一种访问权限。



作者: 刘聪聪    时间: 2015-2-4 23:59
加油……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2