duck904 发表于 2013-1-21 17:44:10

AutoIt 模拟面向对象

本帖最后由 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
$aLilei = "李雷"
$aLilei = "男"
;NewClass $LiLei = new Humen("李雷","男")

Local $aHuangMeiMei
$aHuangMeiMei = "黄妹妹"
$aHuangMeiMei = "女"
;NewClass $HuangMeiMei = new Humen("黄妹妹","女")


$sName = $aLilei
$sSex = $aLilei
speak()
;$LiLei.speak()

$sName = $aHuangMeiMei
$sSex = $aHuangMeiMei
speak()
;$HuangMeiMei.speak()
上面是一个简单的面向对象的例子(注释中的代码),一个对象模型(Humen)可以看成是一组属性(变量)和方法(函数)的集合,而对象的实例可以看成是拥有不同属性的该对象模型,我们可以用一个数组来存放某个对象实例的属性,当需要使用该对象方法的时候,把该对象所有的属性还原上去,再执行该方法就可以了,不知道是不是可以实现

happytc 发表于 2013-1-21 20:06:47

我怎么看,你上面的都不象面向对象的封装,更象是面向过程语言的一个结构而已,更别说更重要的继承和多态了。
别模拟了,话说面向对象并不比面向过程先进。

komaau3 发表于 2013-1-21 22:13:23

...以为au升级了

MicroBlue 发表于 2013-1-21 22:44:35

可以面向对象吗? 意义大不大? 期待大侠的解答!!

seniors 发表于 2013-1-22 07:41:04

$sName = $aLilei
$sSex = $aLilei
应该是
Humen($aLilei, $aLilei)
直接赋值那个构造函数就没意义了

我对这个构造函数很感兴趣,有点意思

haijie1223 发表于 2013-1-22 07:53:41

au3可以定义类吗?

rchockxm 发表于 2013-1-22 08:53:52

回复 6# haijie1223

很久以前有一個版本有

後來出了一個AutoitObject的東西,不過作者很久沒更新了

huangke 发表于 2013-1-23 15:02:56

啊,不错啊,有点意思了

www378660084 发表于 2013-1-23 20:59:15

用注释写的类也叫类么...

82809085 发表于 2013-2-22 02:39:55

不太明白吧小手一抖 金币到手
页: [1]
查看完整版本: AutoIt 模拟面向对象