• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi2006语言新特性——类静态字段、类属性

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文转自http://hi.baidu.com/homejun/blog/item/3cd2cd1b6c60f4faaf5133d0.html
delphi2006语言新特性——类静态字段、类属性
类静态字段 Class Fields
(直译应为类字段,为避免混淆,本文统称类静态字段)

类静态字段是类的一种特殊字段,它可以在类没有实例化时访问(普通的实例字段必须在类实例化后才能访问)。类静态字段储存的值可以被所有实例共享。(很有意思,赋一下值,所有类,实例都会改变,感觉很有用)
你可以用关键字class var在类的声明部分定义一个类静态字段块,所有在class var 以后定义的字段都是静态存储的。当遇到以下情况时类静态字段块结束:
1声明另外一个 class var 或var
2声明一个 procedure 或 function (包含class procedures and class functions)
3声明一个 property (包含class properties)
4声明一个 constructor 或 destructor
5可见性范围修饰符(public, private, protected, published, strict private, and strict protected)
例:
type
TMyClass = class
public
class var // 定义一个类静态字段块
Red: Integer;
Green: Integer;
Blue: Integer;
var // 结束类静态字段块
InstanceField: Integer;
end;

类静态字段 Red, Green,和Blue 能被以下代码存取:

TMyClass.Red := 1;
TMyClass.Green := 2;
TMyClass.Blue := 3;

类静态字段也可以通过一个类实例存取,如下面的声明:

var
myObject: TMyClass;

下面的代码也可以达到同样的效果。

myObject.Red := 1;
myObject.Green := 2;
myObject.Blue := 3;
类属性 Class Properties
类属性不用实例化就可以存取。类属性的存取必须定义为类方法,或者类静态字段。(看来只不过是编译器的魔术,实际上是用类方法、类静态字段存取的)类属性使用class property 关键字声明。类属性不能published,并且不能有stored 或 default值。
例:
type
TMyClass = class
strict private
class var // 定义一个类静态字段块
FRed: Integer;
FGreen: Integer;
FBlue: Integer;
public // 结束类静态字段块
class property Red: Integer read FRed write FRed;
class property Green: Integer read FGreen write FGreen;
class property Blue: Integer read FBlue write FBlue;
end;
你可以用下面的代码存取:
TMyClass.Red := 0;
TMyClass.Blue := 0;
TMyClass.Green := 0;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB连接MySQL数据库发布时间:2022-07-18
下一篇:
matlab指派问题 线性规划发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap