Java中的封装之我见

类别:Java 点击:0 评论:0 推荐:

Java中的封装之我见(一)

 

以下是我对Java中封装概念的一点理解,不一定正确希望大家多指正。

封装就是将客户端不应看到的信息包裹起来。使内部执行对外部来看不一种不透明的、是一个黑箱,客户端不需要内部资源就能达到他的目的。下面让我们从不同角度对封装加以分析。

以最终客户的角度来看,.jar文件就是一种封装,他们不需要知道.jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于J2EE来说还有war和ear。区别见下表:

 

JAR

WAR

EAR

英文

Java Archive file

Web Archive file

Enterprise Archive file

包含内容

class、properties文件,是文件封装的最小单元

Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等

除了包含JAR、WAR以外,还包括EJB组件

部署文件

application-client.xml

web.xml

application.xml

级别

 

下面主要以程序员的角度分析:

从几个关键字说起:

1、              package和import允许我们做的事情是分割单个全局命名空间,保证我们不会遇到名字的冲突1。由此可Java将每个class文件封装在不同的命名空间中,使外世的类与该类和与该类有关的类分隔开来。

2、              private(私有):修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类(包括该类的子类)来获得和引用。它提供了最高的保护级别。

3、              friendly(友好):不指定访问指示符即没有关键字描述,是缺省的,缺省的元素拥有包访问权限。由于一个编译单元只能从属于单个包,所以单个编译单元内的所有类相互间是自动“友好”的。

4、              protected(受保护):用protected修饰的成员可以被三种类所引用:1)该类自身、2)与它在同一个包中的其他类、3)在其他包中的该类的子类。

5、              public(公共):它具有被所有包中的类访问的可能性,只要这些其他包中的类在程序中使用import关键字引用该类。用public修饰会造成安全性和数据封装性下降。

 

修饰符

同类

同包

子类

通用性

封装级别

public

1

protected

 

2

frendly

 

 

3

private

 

 

 

4

由此可见访问控制符为隐藏实施细节提供了一种方式,使代码级的对类、方法、属性的封装成为可能。用包控制符和访问控制符只是封装的手段,由此方式可以抽象出四种形式。那就是类的封装、对象的封装、方法的封装和属性的封装

本文地址:http://com.8s8s.com/it/it16832.htm