自由,平等,开源,分享

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  2 Posts :: 61 Stories :: 3 Comments :: 0 Trackbacks

  一个类总能够访问自己的数据成员和成员方法。
  但是,其他类是否能访问这个类的数据成员或成员方法,是由该类的访问控制符及该类数据成员和成员方法的访问控制符决定的。
  访问控制符是一组限定类、数据成员或成员方法是否可以被其他类访问的修饰符。
  类的访问控制符只有 public 一个,缺省访问控制符时具有“友好访问”的特性。
  数据成员和成员方法的访问控制符有 public、private、protected 和缺省访问控制符等几种。

1 公共访问控制符 public

  Java 的类是通过包的概念来组织的,定义在同一个程序文件中的所有类都属于同一个包。
  处于同一个包中的类都是可见的,即可以不需要任何说明而方便地互相访问和引用。
  而对于不同包中的类,一般说来,它们相互之间是不可见的,当然也不可能互相引用。
  当一个类被声明为 public 时,只要在其他包的程序中使用 import 语句引入这个 public 类,就可以访问和引用这个类,创建这个类的对象,访问这个类内部可见的数据成员和引用它的可见的方法。

  当一个类的访问控制符为 public 时,表明这个类作为整体对其他类是可见和可使用的,这个类就具有了被其他包中的类访问的可能性。
  但是,处于不同包中的 public 类作为整体对其他类是可见的,并不代表该类的所有数据成员和成员方法也同时对其他类是可见的,这得由这些数据成员和成员方法的修饰符来决定。
  只有当 public 类的数据成员和成员方法的访问控制符也被声明为 public 时,这个类的所有用 public 修饰的数据成员和成员方法也同时对其他类是可见的。
  在程序设计时,如果希望某个类能作为公共工具供其他的类和程序使用,则应该把类本身和类内的方法都定义成 public。

  需要注意的是,数据成员和成员方法的访问控制符被声明为 public 时,会造成安全性和封装性的下降,所以一般应尽量少用。

2 缺省访问控制符

  若一个类没有访问控制符,说明它具有缺省的访问控制特性,这种缺省的访问控制特性称为“友好访问”。
  友好访问规定只有在同一个包中的对象才能访问和引用这些类,因此,又称为包访问性。
  同理,类内的数据成员和成员方法如果没有访问控制符来限定,也具有“友好访问”特性,它们也具有包访问性,可以被同一个包中的其他类所访问和引用。

3 私有访问控制符 private

  用 private 修饰的数据成员或成员方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类)来访问和引用。
  它提供了最高的保护级别。
  当其他类希望获取或修改私有成员时,需要借助于类的方法来实现。

4 保护访问控制符 protected

  用 protected 修饰的成员变量可以被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。
  使用 protected 修饰符的主要作用是允许其他包中的它的子类来访问父类的特定属性。

posted on 2008-04-07 22:30 龙震 阅读(478) 评论(0)  编辑  收藏 所属分类: 概念,术语,基础,理解

只有注册用户登录后才能发表评论。


网站导航: