找回密码
 加入
搜索
查看: 4617|回复: 9

[系统综合] AutoIt 模拟面向对象

  [复制链接]
发表于 2013-1-21 17:44:10 | 显示全部楼层 |阅读模式
本帖最后由 duck904 于 2013-1-21 18:02 编辑
;对象:人
;Class Humen
        ;类属性
        Local $sName
        Local $sSex
        
        ;构造函数
        Func Humen($Name, $Sex)
                $sName = $Name
                $sSex = $Sex
        EndFunc

        ;类方法
        Func speak()
                MsgBox(0,"about me", "My name is " & $sName)
        EndFunc
;EndClass

Local $aLilei[2]
$aLilei[0] = "李雷"
$aLilei[1] = "男"
;NewClass $LiLei = new Humen("李雷","男")

Local $aHuangMeiMei[2]
$aHuangMeiMei[0] = "黄妹妹"
$aHuangMeiMei[1] = "女"
;NewClass $HuangMeiMei = new Humen("黄妹妹","女")


$sName = $aLilei[0]
$sSex = $aLilei[1]
speak()
;$LiLei.speak()

$sName = $aHuangMeiMei[0]
$sSex = $aHuangMeiMei[1]
speak()
;$HuangMeiMei.speak()
上面是一个简单的面向对象的例子(注释中的代码),一个对象模型(Humen)可以看成是一组属性(变量)和方法(函数)的集合,而对象的实例可以看成是拥有不同属性的该对象模型,我们可以用一个数组来存放某个对象实例的属性,当需要使用该对象方法的时候,把该对象所有的属性还原上去,再执行该方法就可以了,不知道是不是可以实现
发表于 2013-1-21 20:06:47 | 显示全部楼层
我怎么看,你上面的都不象面向对象的封装,更象是面向过程语言的一个结构而已,更别说更重要的继承和多态了。
别模拟了,话说面向对象并不比面向过程先进。
发表于 2013-1-21 22:13:23 | 显示全部楼层
...以为au升级了
发表于 2013-1-21 22:44:35 | 显示全部楼层
可以面向对象吗? 意义大不大? 期待大侠的解答!!
发表于 2013-1-22 07:41:04 | 显示全部楼层
$sName = $aLilei[0]
$sSex = $aLilei[1]
应该是
Humen($aLilei[0], $aLilei[1])
直接赋值那个构造函数就没意义了

我对这个构造函数很感兴趣,有点意思
发表于 2013-1-22 07:53:41 | 显示全部楼层
au3可以定义类吗?
发表于 2013-1-22 08:53:52 | 显示全部楼层
回复 6# haijie1223

很久以前有一個版本有

後來出了一個AutoitObject的東西,不過作者很久沒更新了
发表于 2013-1-23 15:02:56 | 显示全部楼层
啊,不错啊,有点意思了
发表于 2013-1-23 20:59:15 | 显示全部楼层
用注释写的类也叫类么...
发表于 2013-2-22 02:39:55 | 显示全部楼层
不太明白吧  小手一抖 金币到手
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 22:39 , Processed in 0.286072 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表