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:04] – jorge | at:tutorial:objects [2007/06/29 10:22] – jorge | ||
---|---|---|---|
Line 9: | Line 9: | ||
< | < | ||
- | > def Point := object: { | + | > def point := object: { |
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: | + | |
- | <code> | + | <note important> |
- | > def initialPoint := Point.new(0,0) | + | AmbientTalk not only supports traditional canonical syntax (e.g. '' |
- | >>< | + | </note> |
- | </code> | + | |
- | Every object understands | + | In the example above, the state of the '' |
===== Sending messages ===== | ===== Sending messages ===== | ||
- | In AmbientTalk, | + | In AmbientTalk, |
+ | |||
+ | < | ||
+ | > point.x | ||
+ | >>2 | ||
+ | > point.sumOfSquares() | ||
+ | >> | ||
+ | </ | ||
+ | |||
+ | This code shows two messages sent to the '' | ||
===== Cloning and instantiation ===== | ===== Cloning and instantiation ===== | ||
+ | As said before in this section, AmbientTalk objects are created [[objects# | ||
+ | < | ||
+ | > def anotherPoint := point.new(2, | ||
+ | >>< | ||
+ | </ | ||
+ | Every object understands the message '' | ||
===== Delegation and Dynamic Inheritance ===== | ===== Delegation and Dynamic Inheritance ===== | ||
+ | AmbientTalk features object inheritance or delegation. By means of delegation, an object can reuse and extend the defintion of another. We distinguish two different delegation relationships: | ||
+ | |||
===== Delegation and cloning ===== | ===== Delegation and cloning ===== |
at/tutorial/objects.txt · Last modified: 2013/05/17 20:23 by tvcutsem