当前位置: 首页 > 编程语言 > Java > 正文

Java编程那些事儿64——访问控制符、修饰符和其它关键字

时间:2010-03-11 csdn 陈跃峰

访问控制符的作用是说明被声明的内容(类、属性、方法和构造方法)的访问权限,就像发布的文件一样,在文件中标注机密,就是说明该文件可以被那些人阅读。

访问控制在面向对象技术中处于很重要的地位,合理的使用访问控制符,可以通过降低类和类之间的耦合性(关联性)来降低整个项目的复杂度,也便于整个项目的开发和维护。具体的实现就是通过访问控制符将类中会被其它类调用的内容开放出来,而把不希望别人调用的内容隐藏起来,这样一个类开放的信息变得比较有限,从而降低了整个项目开放的信息,另外因为不被别人调用的功能被隐藏起来,在修改类内部隐藏的内容时,只要最终的功能没有改变,即使改变功能的实现方式,项目中其它的类不需要更改,这样可以提高了代码的可维护性,便于项目代码的修改。

在Java语言中访问控制权限有4种,使用三个关键字进行表达,依次如下:

l public——公共的

l protected——受保护的

l 无访问控制符——默认的

l private——私有的

其中无访问控制符是指不书写任何的关键字,也代表一种访问权限,访问控制符的使用示例如下所示:

public class AccessControl {
 int n;
 public AccessControl(){
  init();
 }
 private void init(){}
 protected void test(int k){}
}

该示例代码中演示了各个访问控制符的实际使用示例,其中属性n的访问控制符就是默认的。

在实际使用时,类声明的访问控制符只有2个:public和无访问控制符,属性声明、构造方法声明和方法声明的访问控制符可以是以上4种中的任何一个。

这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的内容一般对外部的实现没有影响。