代码改变世界

java AccessControl keyword

2009-12-04 18:00  iBlog  阅读(355)  评论(0编辑  收藏  举报
4个访问控制符的权限作用如下表所示:

访问控制符

同一个类内部

同一个包内部

不同包中的子类

不同包中的非子类

public

Yes

Yes

Yes

Yes

protected

Yes

Yes

Yes

No

无访问控制符

Yes

Yes

No

No

private

Yes

No

No

No

         说明:在该表中,Yes代表具备对应的权限,No代表不具备对应的权限。

         4种访问控制中,public一般称作公共权限,其限制最小,也可以说没有限制,使用public修饰的内容可以在其它所有位置访问,只要能访问到对应的类,就可以访问到类内部public修饰的内容,一般在项目中开放的方法和构造方法使用public修饰,开放给项目使用的类也使用public修饰。protected一般称作继承权限,使用protected修 饰的内容可以被同一个包中的类访问也可以在不同包内部的子类中访问,一般用于修饰只开放给子类的属性、方法和构造方法。无访问控制符一般称作包权限,无访 问控制符修饰的内容可以被同一个包中的类访问,一般用于修饰项目中一个包内部的功能类,这些类的功能只是辅助其它的类实现,而为包外部的类提供功能。private一般称作私有权限,其限制最大,类似于文件中的绝密,使用private修饰的内容只能在当前类中访问,而不能被类外部的任何内容访问,一般修饰不开放给外部使用的内容,修改private的内容一般对外部的实现没有影响。

PS:(个人叫法便于记忆)

     public          无限制 访问控制符     (无任何限制)

     protected    继承    访问控制符      (具有继承关系的类之间才能访问)

     *****                访问控制符     (在同一个包中的类才能访问)

     private               访问控制符      (在同一个类中才能访问)

 如果您要访问一些不能直接访问的属性时,最好通过getter/setter器来访问。