new

Gamma: Version 4.0
Prev |  | Next

# `new`

`new` -- creates a new instance of a class.

## Syntax

    new (class)

## Arguments

`class`

  The name of an existing class.

## Returns

A new instance of the `class`.

## Description

The `new` function creates a new instance of the specified class and initializes any instance variables which have default values associated with them, or assigns them to nil if there is no default specified.

An instance is represented by an open brace, followed by the class name, followed by a sequence of dotted pairs (dotted lists of two elements), each containing an instance variable name and a value, followed by a closing brace. Note that `(x . nil)` is the same as `(x)`. For example, an object of the class `PhPoint` would be `{PhPoint (x . 5) (y . 0)}`.

An instance can be destroyed by `destroy`.

## Example

        Gamma> class RegPolygon{sides; length;}
        (defclass RegPolygon nil [][length sides])
        Gamma> class Square RegPolygon {sides = 4;}
        (defclass Square RegPolygon [][length (sides . 4)])
        Gamma> polyA = new(RegPolygon);
        {RegPolygon (length) (sides)}
        Gamma> sqC = new(Square);
        {Square (length) (sides . 4)}
        Gamma>

## See Also

`class`, `destroy`

Prev | Home | Next
`macro` | Up | `parent_class`

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.