User Tools

Site Tools


Sidebar

Jump to
AmbientTalk
CRIME
iScheme

at:tutorial:objects

This is an old revision of the document!


In this section, we explain how the object-oriented programming paradigm is implemented in AmbientTalk.

Objects, fields and methods

In AmbientTalk, objects are not instantiated from classes. Rather, they are either created ex-nihilo or by cloning and adapting existing objects, like prototypes in the SELF programming language. The definition of such a prototypical object contains a number of fields and methods that represent the object's state and behaviour respectively.

The following code illustrates the ex-nihilo creation of an object:

> def Point := object: { 
    def x := 0;
    def y := 0;
    def init(m,n) {
      x := m;
      y := n;
    }
    def sumofsquares() { x*x + y*y };
  }
>><object:439658>

This object can be instantiated to create new points as follows:

> def initialPoint := Point.new(0,0)

Sending messages

In AmbientTalk, computation is expressed in terms of object sending messages to one another.

Cloning and instantiation

Delegation and Dynamic Inheritance

Delegation and cloning

First-class Delegation

Encapsulation

at/tutorial/objects.1182937208.txt.gz · Last modified: 2007/06/27 11:42 (external edit)