1

我在这里阅读教程:http: //www.adobe.com/devnet/actionscript/learning/oop-concepts/objects-and-classes.html以及点符号部分的第二段。它使用 ActionScript 3 中的“Sprite”类。本教程创建了 Sprite 类的实例并将其命名为 myFirstObject。它说..

“然后,使用该引用变量和点表示法,将值分配给实例的 x 和可见属性,并调用 startDrag 和 stopDrag 方法。”

我注意到属性后没有 () 。例如:myFirstObject.x = 300;

与方法相比

myFirstObject.startDrag();

那么,实例的属性和方法有什么区别呢?我认为如果我能看到 Sprite 类会有所帮助,但是当我尝试 google'ing 时却找不到它。

4

2 回答 2

0

属性和方法的相似之处在于,它们都是作为接受参数的过程来实现的。通常,属性存储对象的数据,方法是可以要求对象执行的操作。

于 2015-01-30T14:00:25.630 回答
0

属性具有 Get() 和 Set() 方法,允许您使用相同的调用来获取或分配值。当您为属性分配值时,您正在调用 Set 方法。当您检索一个值时,您使用的是 Get 方法。属性会根据操作自动调用适当的 Get 或 Set 方法。

为了帮助您可视化设置,这里有一个示例属性 (VB.Net):

Private _name As String

Public Property Name() As String
    Get
        Return _name
    End Get
    Private Set(ByVal value As String)
        _name = value
    End Set
End Property

要调用它,您可以使用:

MyObject.Name = "Test" <- Sets the name to test
MsgBox("The name is: " & MyObject.Name) <- Gets the value of name

虽然例子是在 VB.Net 中,但原理还是一样的。

另一方面,方法相当于 Get 或 Set 例程。作为一种方法,您必须调用它并在括号内提供参数。即使它没有,您仍然需要 ()。当您想要更新变量时,您必须将值传递给方法,而不是将其设置为等于该值。

这是一个类似的例子:

Private _name As String

Public Function Name(Optional ByVal strName as String = "") as String
    If strName <> "" then
        _name = strName
    End If
    Return _name 
End Function

这是如何使用它的类似示例:

MyObject.Name("Test") <- Sets the name to test
MsgBox("The name is: " & MyObject.Name()) <- Gets the value of name
于 2013-09-06T13:45:42.633 回答