p38 OOP基于三个基本概念:封装(通过类实现),继承,多态(滞后绑定)
p39 类和对象 一个对象是类的一个实例,或由类定义的数据类型的一个变量.
对象是真正的实体.对象和类之间的关系与变量和类之间的关系是相同的.
p40 使用try/finally块,以保证万一代码中出现异常时能够析构对象.
p41 支持overloading方法,同名的方法,不同的参数.
方法可以有一个或多个默认值的参数.
在一个方法中,可以使用self关键字访问当前对象.
p42 在请求当前对象时,引用类的一个特殊实例是不好的oop行为.
p44 属性可以直接与数据数据以及访问对象的方法对应起来,用于读写数值.
属性就是虚拟字段.
p46 封装的一个关键思想就是减少程序所使用的全局变量的数目.
信息隐含指的就是封装改变.
p49 delphi的对象引用模型 ??????
p50 赋值对象,assign ??????
p52 调用Free来解除对象,而不要调用Destroy析构器.
使用FreeAndNil,或调用Free后将对象引用设为nil,除非引用超出了范围.
p56 多态性的基本思想是,用户调用一个对象方法,并将其应用于一个变量,->
但delphi具体调用哪个方法将依赖与变量相关的对象类型. ??????
多态性的优势是能够编写简单的代码,对待完全不同的对象类型,->
但前题是它们是相同的并可取得正确的运行时行为. ??????
p57 覆盖一个虚拟方法,必须指定相同的参数并使用关键字override.
要重定义一个静态对象方法,只需向子类添加该对象方法,->
它的参数可以与原来方法的参数相同或不同
p60 基类含有抽象(abstract)方法,那么每个子类都能重定义它,->
每个继承类必须重新定义它.
p61 类型的安全转换:RTTI操作符is,as 通用的数据类型(TObject).
p62 接口类型对象是引用计数的,一个类继承自一个类,但可以实现多个接口.
p69 类引用的作用:允许用户在运行时处理类数据类型.
p80 银行家舍入法:是舍是入取决于这个数是偶数还是奇数。奇数进入.
p81 探测法(soundex)是一个索引系统,会将名称翻译成一个四个字符的代码,->
由一个字母与三个数值组成.详见:www.nara.gov/genealogy/coding.html.
p93 TObject类型的变量或参数只能应用于由TObject定义的方法和属性.
p97 VCL(visual components library),--->
CLX(component library for x-platform or cross platform)
vcl:TObject-TPersistent-TComponent(组件)-TControl(控件) or 非可视组件
clx:BaseCLX(核心类库),VisualCLX(控件),DataCLX(dbExpress引擎前端),NetCLX.
p101 类初始化部分的字段和对象方法都是公布的(published),-->
当组件类的一个元素前没有添加特殊的关键字时,published是默认的关键字.
赋给任何事件的对象方法都应该是公布的对象方法.
p110 delphi组件是使用"PME"即propery,method,event进行编程的.
p111 组件依赖于它的owner,即form来处理它的事件,这项技术叫授权(delegation).
delphi中的事件是基于方法指针的..
p119 容器与列表不是类型安全的,解决方法有两种
1.从列表类派生新类并定制Add对象方法和访问对象方法(与Items属性有关)
2.建立一个包含一个TList对象的全新类,使用类型检查将新类的对象方法和内部列表对应起来.