(delphi11最新学习资料) Object Pascal 学习笔记---第12章操作类(类方法和类数据)

第12章 操作类

​ 在过去的几章中,你已经了解了 Object Pascal 语言面向对象的基础:类、对象、方法、构造函数、继承、后期绑定、接口等等。现在,我们需要进一步了解与类管理相关的一些更高级、更具体的语言特性。从类引用到类助手(class helper),本章涵盖了许多其他 OOP 语言所没有的功能,或者至少在实现上有很大的不同。

​ 本章的重点是类,以及在运行时对类的操作。在第 16 章介绍反射和属性时,我们将进一步介绍这一主题。

12.1 类方法和类数据

​ 当你在 Object Pascal语言 和其他大多数 OOP 语言中定义一个类时,你就定义了该类对象(或实例)的数据结构,以及你可以在该对象上执行的操作。不过,也可以定义类中所有对象共享的数据以及可以直接调用的类方法,从而不依赖于用类创建任何实际对象。

​ 要在 Object Pascal 中声明一个类方法,只需在其前面添加 class 关键字即可。

就像在过程或函数关键字前面一样:

pascal 复制代码
type
	TMyClass = class
		class function MeanValue: Integer;

​ 给定一个TMyClass 类的对象 MyObject,你可以通过将该类方法应用于一个对象或与类作为一个整体来调用该方法:

pascal 复制代码
var
	MyObject: TMyClass;
begin
	...
	I := TMyClass.MeanValue;
	J := MyObject.MeanValue;

​ 这种语法意味着即使没有类的实例也可以调用类的方法。有些情况下,类只由类方法组成,隐含的意思是您永远不会创建这些类的对象(您可以通过声明创建构造函数为私有)。

注解 在不允许使用全局函数的面向对象编程语言中,使用类方法尤其是仅由类方法组成的类的现象更为常见。Object Pascal仍然允许您声明老式的全局函数,但是,近年来,系统库和开发人员编写的代码越来越多地转向一致使用类方法。使用类方法的优点是它们在逻辑上与类绑定,类充当一组相关函数的名称空间。

相关推荐
Slow菜鸟1 小时前
AI学习篇(五) | awesome-design-md 使用说明
人工智能·学习
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html
狐狐生风2 小时前
LangChain 向量存储:Chroma、FAISS
人工智能·python·学习·langchain·faiss·agentai
狐狐生风2 小时前
LangChain RAG 基础
人工智能·python·学习·langchain·rag·agentai
努力努力再努力FFF4 小时前
医生对AI辅助诊断感兴趣,作为临床人员该怎么了解和学习?
人工智能·学习
OBiO20134 小时前
Cell | 突破AAV载体容量限制!路中华/姜玉武/刘太安团队开发AAVLINK系统实现大基因递送
笔记
智者知已应修善业5 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
sakiko_6 小时前
UIKit学习笔记5-使用UITableView制作聊天页面
笔记·学习·swift·uikit
Alice-YUE6 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
北山有鸟7 小时前
修改源码法和插件法
嵌入式硬件·学习