Diff for /freem/doc/freem.texi between versions 1.44 and 1.45

version 1.44, 2025/05/05 05:16:34 version 1.45, 2025/05/05 12:34:02
Line 4944  If you use other M implementations, you Line 4944  If you use other M implementations, you
 @cindex object-oriented programming  @cindex object-oriented programming
 @cindex programming, object-oriented  @cindex programming, object-oriented
   
   @menu
   * Classes::                             The organizing concept of object-oriented programming.
   * Inheritance::                         Making one class derive from another.
   * Methods::                             Attach code to classes.
   * Public and Private Variables::        Determining accessibility.
   * Instantiating Objects::               Creating instances of classes.
   @end menu
   
   @node Classes
 @section Classes  @section Classes
 @subsection Class Overview  @subsection Class Overview
   
Line 5000  DESTROY(THIS) ; Line 5008  DESTROY(THIS) ;
   Q    Q
 @end example  @end example
   
   @node Inheritance
 @section Inheritance  @section Inheritance
   
 Every class you create will automatically inherit the methods and functionality of the @code{OBJECT} class, supplied with FreeM.  Every class you create will automatically inherit the methods and functionality of the @code{OBJECT} class, supplied with FreeM.
Line 5018  You can achieve runtime polymorphism by Line 5027  You can achieve runtime polymorphism by
   
 Note that the overridden method in the subclass can take a different set or number of arguments than the @emph{formallist} of the superclass method would specify.  Note that the overridden method in the subclass can take a different set or number of arguments than the @emph{formallist} of the superclass method would specify.
   
   @node Methods
 @section Methods  @section Methods
 Class methods are defined as tags with @emph{formallist}s in a class routine, and per the typical FreeM object pattern, must take at least one argument, being @code{THIS} (representing a reference to the object instance being accessed).  Class methods are defined as tags with @emph{formallist}s in a class routine, and per the typical FreeM object pattern, must take at least one argument, being @code{THIS} (representing a reference to the object instance being accessed).
   
Line 5040  DEFAULT.USER> W MYOBJ.MYMETHOD() Line 5050  DEFAULT.USER> W MYOBJ.MYMETHOD()
 VALUE  VALUE
 @end example  @end example
   
   @node Public and Private Variables
 @section Public and Private Variables  @section Public and Private Variables
   
 FreeM supports private fields with the @code{:PRIVATE} specifier in the @code{SET} command, enforcing classical object-oriented data encapsulation. The @code{:PUBLIC} specifier is provided for completeness, and is the default.  FreeM supports private fields with the @code{:PRIVATE} specifier in the @code{SET} command, enforcing classical object-oriented data encapsulation. The @code{:PUBLIC} specifier is provided for completeness, and is the default.
Line 5062  Either of the following commands will cr Line 5073  Either of the following commands will cr
   
 Attempting to access private fields from outside of the class will raise error condition @code{ZOBJFLDACCV}.   Attempting to access private fields from outside of the class will raise error condition @code{ZOBJFLDACCV}. 
   
   @node Instantiating Objects
 @section Instantiating Objects  @section Instantiating Objects
   
 To instantiate an object (i.e., create an object from a certain class), you will use the @code{NEW} command as follows:  To instantiate an object (i.e., create an object from a certain class), you will use the @code{NEW} command as follows:
Line 5072  NEW MYSTR=$#^%STRING("myString") Line 5084  NEW MYSTR=$#^%STRING("myString")
   
 This will create a local variable called MYSTR of type STRING, and initialize it with the value myString.   This will create a local variable called MYSTR of type STRING, and initialize it with the value myString. 
   
 @section Determining Object Class  @subsection Determining Object Class
   
 To determine the class of any FreeM local variable, you will use the @code{$$TYPE()} method:  To determine the class of any FreeM local variable, you will use the @code{$$TYPE()} method:
   

Removed from v.1.44  
changed lines
  Added in v.1.45


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>