初探Object Pascal的类(二)

本文深入探讨了类存取级的概念,包括私有、公有、保护、公布和自动存取级,并通过实例展示了如何在实际编程中应用这些概念。文章还解释了数据抽象的作用,以及如何通过不同存取级别来隐藏类的内部实现,从而提高代码的可维护性和安全性。

类的存取级(可见性)

类有五个存取级(可见性):

  • 私有的(Private)
  • 公有的(Public)
  • 保护的(Protected)
  • 公布的(Published)
  • 自动的(Automated)

作为一个程序员,不仅要创建类而且要使用类。在团队编程中,一些程序员是类的创建者,而另一些程序员是类的使用者。要理解类存取级在类操作中的所担当的角色,首先必须理解怎样使用类。

在任何类中,都有类的公用部分,这些公用部分对外界是可存取的,同时类也有私有部分,类的私有部分是类的内部实现。作为一个设计完美的类还需要包括一部分内容,这些内容对类的使用者来说是不需要知道的,要把这部分内容从公用视图中隐藏掉。

数据抽象(Data abstraction)就是类的内部实现,对外部来说不可见。

数据抽象可以使用户避免了解一些用户不要了解的类的内容,也可以使用户避免混淆一些用户本不该产生混淆的东西。例如,当人们进入汽车并转动钥匙启动汽车时,想知道有关汽车操作的具体细节么?当然不,人们只想知道需要知道的东西。即安全驾驶汽车,在这种情况下,人们只关心类似于方向盘、脚踏板、离合器、速度计等等代表汽车与驾驶员之间接口的东西,驾驶员只需要知道这些组件的哪个符合他的需要,能正确驾驶汽车就可以了。

相反,发动机、驱动系统和电子系统就从公用视图中隐藏掉,发动机被车壳包住,只要不想看它,就可以不要看它,不需要知道有关发动机更具体的细节。想想看,如果需要了解汽车的方方面面才能驾驶汽车的话,那么驾驶汽车该多麻烦呀。同样类也保持它的内部实现私有,类的用户也不必考虑这些隐藏起来的内容。类的内部工作保持私有,但用户界面是公开的

保护存取级与私有类成员一样是不能被类用户存取的,但由本类派生的类可以存取保护类。再以汽车为例子,假设现在需要把小汽车扩展成一个大客车,为了做到这一点,就必须要了解汽车的一些基本结构,起码必须知道怎样修改驱动车杆和车架。在这种情况下,就必须得弄脏受,并且必须要了解一些汽车的结构,而这些以前对人们来说并不是很重要。

编写组件时要用公布存取级,任何组件的声明都在published段,在设计阶段它出现在Object Inspector中。

Object Pascal与类的存取有关的关键字,它们是publicprivateprotectedpublished,当声明类的时候要特别声明其成员存取级,类的声明用关键字class,看下面的例子:

type
  TVehicle = class
  private
    CurrentGear: Integer;
    Started: Boolean;
    Speed: Integer;
    procedure StartElectricalSystem;
    procedure StartEngine;
  protected
    procedure StartupProcedure;
  public
    HaveKey: Boolean;
    Start: Boolean;
    procedure SetGear(Gear: Integer);
    procedure Accelerate(Acceleration: Integer);
    procedure Brake(Factor: Integer);
    procedure Turn(Direction: Integer);
    procedure ShutDown;
  end;

上面的例子中只用到了三个存储级,在给定的类中可以不用全部存取级,上面的例子就没有用到公布(published)存取级,只要不想要就可以不用任何存取级。但一般起码要有公用段和私有段。

转载于:https://www.cnblogs.com/pchmonster/archive/2011/12/30/2306871.html

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值