Delphi 在Object Pascal中,实现了两个级别的封装:类级和单元级

一 、类级别的封装

类级别的封装是最常见的封装形式。

每个Object Pascal的类,有四种访问级别:private、protected、public、published。其

中,public的成员可以被外界的所有客户代码直接访问;published和public差不多,区别

仅在于published的成员可以被Delphi开发环境的Object Inspector所显示,因此一般将属

性或事件声明于published段;private成员为类的私有性质,仅有类本身和友元可访问;

protected成员基本与private类似,区别在于protected可以被该类的所有派生类访问。

在类级别的封装中,对外界的接口是public方法和published成员的集合,private和

protected的集合则属于类的实现细节。而对于该类的派生类来说,接口是public、published

与protected的集合,而只有private部分为内部实现细节。

二、 单元级别的封装

单元级别的封装包含的含义有:

1.在一个Unit中声明的多个类,互为友元类。

2.在一个Unit的interface部分声明的变量为全局变量,其他Unit可见。

3.在一个Unit的implementation部分声明的变量为该unit的局部变量,只在该Unit

可见。

4.每个Unit可有单独的初始化段(initialization)和反初始化段(finalization),可在

编译器支持下自动进行Unit级别的初始化和反初始化。