QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 811|回复: 0
打印 上一主题 下一主题

如何命名一个事件

[复制链接]
字体大小: 正常 放大

2620

主题

162

听众

1万

积分

升级  0%

  • TA的每日心情
    开心
    2015-3-12 15:35
  • 签到天数: 207 天

    [LV.7]常住居民III

    社区QQ达人 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组第六届国赛赛前冲刺培

    群组国赛讨论

    群组2014美赛讨论

    群组2014研究生数学建模竞

    群组数学中国试看培训视频

    跳转到指定楼层
    1#
    发表于 2014-12-30 10:42 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    在MATLAB面向对象程序设计中,一个事件要用一个名称来标识。在一个类的events块中声明一个标识符,便可定义该类中的一个事件的标识,我们把这样的标识也称为事件,其格式如下:
    classdef  类名 < handle
             …
            events
               事件名
             end
    end
    例如在下面的类MClock中定义了一个事件Alarm,我们可以通过改变成员Enable的值来触发这个事件。
    classdef  MClock < handle           %时钟类
          properties
             Enable = false            %是否启动
          end
          events
             Alarm   %闹钟
          end
    end
    像类中其他成员一样,在events块中定义事件时,也可以设置相应的特性值,以便控制事件的触发和听众的定义等,例如:
    events (ListenAccess = 'private', NotifyAccess = 'private')
          anEvent
          anotherEvent
    end
    上面events块中的两个事件anEvent、anotherEven都具有相同的特性值,即ListenAccess和NotifyAccess都是私有的,这就表明这两个事件只有本类的方法才可访问,并且只有本类的方法才可触发它们的发生。如果要在同一个类中定义其他具有不同特性值的事件时,只要单独再开一个events块即可。表8-2给出了事件可以设置的所有特性名、类型及意义。
    表8-2  事件特性表
    特性名称                         类型                                          说明
    Hidden                      逻辑型,默认值为false 隐藏性。当值为true时,该事件就不会出现在events函数的返回事件列表中。
    ListenAccess              枚举,默认值为public         收听访问控制特性。该属性用来确定在何处可以创建其听众。可以取的值有:
                                                                    (1)public——访问不受限。
                                                                    (2)protected——只有本类和派生类的方法可以访问。
                                                                    (3)private——仅本类方法可以访问。
            meta.class类对象,或meta.class类对象元胞阵列  仅在列表内的类被授权可收听该事件。
                      (MATLAB 2010版本以下不支持)    这里列表中的类是通过meta.class对象来指定的。
    NotifyAccess            枚举,默认值为public   广播访问控制特性。该属性用来确定在何处能够广播该事件。可以取的值有:
                                                                    (1)public——任意位置都可广播该事件。
                                                                    (2)protected——只有本类和派生类的方法才可广播该事件。
                                                                    (3)private——仅本类的方法才可广播该事件。
            meta.class类对象,或meta.class类对象元胞阵列        仅在列表内的类被授权可广播该事件。
                                                              这里列表中的类是通过meta.class对象来指定的。
    除了自己可以定义事件名称外,MATLAB中还提供了4个预定义事件,这些事件主要涉及所在类中的属性成员值的改变和查询过程,它们分别是PreSet、PostSet、PreGet和PostGet。在定义一个事件类时,不需要在事件块中列出上面的4个事件。当上面的事件发生时,相应的回调函数会接收到一个event.PropertyEvent对象。关于这4个预定义事件的使用我们将在本章第3节详细介绍。

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-22 15:59 , Processed in 0.345409 second(s), 54 queries .

    回顶部