at:tutorial:objects
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:objects [2007/06/27 12:03] – jorge | at:tutorial:objects [2007/06/29 08:14] – jorge | ||
---|---|---|---|
Line 12: | Line 12: | ||
def x := 0; | def x := 0; | ||
def y := 0; | def y := 0; | ||
- | def init(xCoord,yCoord) { | + | def init(aX,aY) { |
- | x := xCoord; | + | x := aX; |
- | y := yCoord; | + | y := aY; |
}; | }; | ||
def sumOfSquares() { x*x + y*y }; | def sumOfSquares() { x*x + y*y }; | ||
Line 21: | Line 21: | ||
</ | </ | ||
- | As all definitions in AmbientTalk, | + | As all definitions in AmbientTalk, |
- | This object can be instantiated to create new points as follows: | + | |
+ | <note important> | ||
+ | AmbientTalk not only supports traditional canonical syntax (e.g. '' | ||
+ | </ | ||
+ | |||
+ | In the example above, the state of the '' | ||
< | < | ||
- | > def initialPoint | + | > def aPoint |
>>< | >>< | ||
</ | </ | ||
- | Every object understands the message new, which creates a clone (a shallow copy) of the receiver object and initializes the clone by invoking its init method with the arguments that were passed to new. Hence, the init method plays the role of “constructor” for AmbientTalk objects. AmbientTalk’s object instantiation protocol closely corresponds to class instantiation in class-based languages, except that the new object is a clone of an existing object, rather than an empty object allocated from a class. | + | Every object understands the message |
===== Sending messages ===== | ===== Sending messages ===== | ||
- | In AmbientTalk, | + | In AmbientTalk, |
+ | |||
+ | < | ||
+ | > aPoint.x | ||
+ | >>2 | ||
+ | > aPoint.sumOfSquares() | ||
+ | >> | ||
+ | </ | ||
+ | |||
+ | This code shows two messages sent to the '' | ||
===== Cloning and instantiation ===== | ===== Cloning and instantiation ===== |
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem