new                 package:methods                 R Documentation

Generate an Object from a Class

Description:

     Given the the name or the definition of a class, plus optionally
     data to be included in the object, `new' returns an object from
     that class.

Usage:

     new(Class, ..., .Force=FALSE)

Arguments:

   Class: Either the name of a class (the usual case) or the object
          describing the class (e.g., the value returned by
          `getClass'). 

     ...: Data to include in the new object.  Named arguments
          correspond to slots in the class definition. Unnamed
          arguments must be objects from classes that this class
          extends.

  .Force: Normally, an attempt to apply `new' to a virtual or an
          undefined class generates an error.  If `.Force' is `TRUE',
          an ``empty'' object is returned instead.  Users are very
          unlikely to need this argument. 

Details:

     The function begins by copying the prototype object from the class
     definition.  Then information is inserted according to the ...
     arguments, if any, first from the superclasses (the unnamed
     arguments) then from the named slots.  Thus, explicit slots
     override inherited information for the same slot, regardless of
     the order in which the arguments appear.

     Note that the basic vector classes, `"numeric"', etc. are
     implicitly defined, so one can use `new' for these classes.

Author(s):

     John Chambers

References:

     The web page <URL: http://www.omegahat.org/RSMethods/index.html>
     is the primary documentation.

     The functions in this package emulate the facility for classes and
     methods described in Programming with Data, (John M. Chambers,
     Springer, 1998).  See this book for further details and examples.

See Also:

     Classes

Examples:

     ## using the definition of class "track" from Classes



     ## a new object with two slots specified
     t1 <- new("track", x = seq(along=ydata), y = ydata)

     # a new object including an object from a superclass, plus a slot
     t2 <- new("trackCurve", t1, smooth = ysmooth)

