|
procedure TClass1.SetAge(const Value: Integer); begin FAge := Value; end; { TClass2 } constructor TClass2.create; var c2:TClass2; begin c2:=TClass2.create; c2.FSex:=''''''''; FreeAndNil(c2); end; { TClass11 } procedure TClass11.Eat; begin inherited; end; UML图-类图:
6、 派生类可提升父类的可见性,却不可降低父类的可见性 六、对象、对象引用、类引用、参数传递 1、 对象之间通过消息传递(参数),进行互操作,使用其他类提供的服务(方法组合);消息即对另一对象方法的调用或属性读写 2、 对象分配在堆中、普通数据类型分配在栈中 3、 对象名代表了该对象在栈中的位置,该位置存储的是对象在堆中的实际地址;普通变量名代表了该变量在栈中的位置,该位置存储的是具体数据,而该数据可能是其他变量/对象的地址 4、 值参传递:传递的是具体的数值,进行处理后不会改变原值,其实传递的是该数据的一个副本 5、 引用传递:传递的是对该变量/对象的地址引用,处理后可能会改变原值,传递的是同一个变量/对象的地址 6、 类引用:类的类,形式为“class of type”,其中type代表该类可引用的类元类型。 七、对象的创建、使用、销毁 1、 创建:Create是 Tobject提供的默认构造函数,若从Tobject继承创建的类,自动继承该方法 2、 销毁:Destroy是Tobject提供的默认析构函数,若从Tobject继承创建的类,自动继承该方法 3、 使用:可使用if Assigned (对象名) 判断该对象是否存在;使用FreeAndNil(对象名)释放对象 4、 克隆:继承自Tpersistent的类对象都具有克隆功能。使用对象2.Assign(对象1)的方式克隆 5、 对象的属主:当对象拥有属主时,其生命周期由属主对象进行管理,无属主的对象需要进行手工管理。 6、 对象的创建:先继承父类创建,再完成自身的创建 7、 对象的释放:先释放自身,在完成父类的继承释放 八、类及对象间的关系 1、 继承:子类继承了父类的所有保护、公有、发布部分的数据成员及函数/过程成员 2、 重载:不是类的特有。提供一个同名但参数不同的函数/过程,具有多个实现版本 3、 覆盖:子类通过继承父类的函数/过程,重新定义了功能实现 4、 上一页 [1] [2] [3] [4] [5] 下一页 没有相关教程
|