文档章节

理解 Delphi 的类(六) - 认识类的封装

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 248
阅读 10
收藏 0
//这个类中的两个字段没有封装
  TMyClass1 = class
    FName: string;
    FAge:  Integer;
  end;

  //这个类中的两个字段封装了, 外部不能读写
  TMyClass2 = class
    private
      FName: string;
      FAge:  Integer;
    //public
  end;

  //那怎么读写? 用属性啊
  TMyClass3 = class
  private
    FName: String;
    FAge: Integer;
    procedure SetAge(const Value: Integer);
    procedure SetName(const Value: String);
  published
    property Name: String  read FName write SetName;
    property Age:  Integer read FAge  write SetAge;
  end;
  {
    现在 TMyClass3 中的两个字段: FName、FAge 和两个方法: SetAge、SetName
    都被封装在私有区(private)内, 不允许外部读写, 只能是内部使用.

    不过, private 的封装在本单元内是无效的!
    现在好了, 有了 strict 标识符.
  }

  //这个封装好了, 在 private 前加了 strict ; 现在除了自己谁也访问不了私有区.
  TMyClass4 = class
  strict private
    FName: String;
    FAge: Integer;
    procedure SetAge(const Value: Integer);
    procedure SetName(const Value: String);
  published
    property Name: String  read FName write SetName;
    property Age:  Integer read FAge  write SetAge;
  end;

  {封装的目的就是隐藏实现细节、保证数据安全}

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/01/11/1034528.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
关于C++类静态成员在Delphi中实现的思考

关于C++类静态成员在Delphi中实现的思考   没有用过Version 7 以后的Delphi版本,即便5、6、7版本,我也不能够说了解较深。因此,本文可能杞人忧天。   一、为什么需要静态成员    比如...

geek_loser
2014/11/11
0
0
C#高性能大容量SOCKET并发(一):IOCP完成端口例子介绍

原文:C#高性能大容量SOCKET并发(一):IOCP完成端口例子介绍 例子主要包括SocketAsyncEventArgs通讯封装、服务端实现日志查看、SCOKET列表、上传、下载、远程文件流、吞吐量协议,用于测试S...

杰克.陈
2017/12/06
0
0
VC++之MFC的五大批判

VC++之MFC的五大批判 写在本文之前算起来,我用Visual C++也有将近5年的历史了。在这期间,我也曾涉猎过Visual Basic和Delphi,但都是浅尝而止;Visual C++始终是我的主业。可是努力的成果如...

长平狐
2013/01/06
280
0
从Spring + Ejb + Struts2 迁移到Play 1.x 框架 之一

原来项目比较古老,前台是用delphi,后台有用Ejb做……这货已经很少有人见过了……,现在公司主要项目都转到play上,所以这个项目也重构。 第一阶段是将SSE 迁移到play,尽量不改动代码,只要...

刀狂剑痴
2015/08/27
129
0
集成开发环境--Delphi

Delphi,是美国Borland(宝兰)公司於1995年开发在Windows平台下的快速应用程式开发工具(Rapid Application Development,简称RAD),它的前身是在DOS下的产品Borland Turbo Pascal。(非开源...

匿名
2009/03/11
21K
1

没有更多内容

加载失败,请刷新页面

加载更多

TiDB 3.0 Beta Release Notes

2019 年 1 月 19 日,TiDB 发布 3.0 Beta 版,对应 master branch 的 TiDB-Ansible。相比 2.1 版本,该版本对系统稳定性、优化器、统计信息以及执行引擎做了很多改进。 TiDB 新特性 支持 Vi...

TiDB
14分钟前
2
0
从拼多多优惠券事件看到的一些反思

本文由云+社区发表 作者:颜国平 摘要:最近几年,电商行业飞速发展,各种创业公司犹如雨后春笋大量涌现,商家通过各种活动形式的补贴来获取用户、培养用户的消费习惯,即将到来的“ 购物狂欢...

腾讯云加社区
14分钟前
4
0
记录一次BUG

1: 请求注册页面时生成一个UUID, 并且将UUID隐藏在页面中并且添加到session中去。 2: 发送短信时获取手机号和UUID,将两者发送至服务器 3: 先判断UUID和session中UUID是否一致。 不一致就...

专业写BUG的程序员
19分钟前
1
0
阿里云漏洞提示:phpMyAdmin <=4.8.1 checkPageValidity函数缺陷可导致GETSHELL

如题: phpMyAdmin <=4.8.1 后台checkPageValidity函数缺陷可导致GETSHELL 即:checkPageValidity函数对外部输入过滤不严,可导致本地包含任意文件。进一步地攻击者可通过注入代码到特定文件...

408582708
20分钟前
1
0
PyTorch可视化理解卷积神经网络

摘要: 神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦! 如今,机器已经能...

阿里云官方博客
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部