Class
Cuando una clase usuario es definida en el proyecto, se carga en el entorno del lenguaje 4D. Una clase es un objeto en sí mismo, de la clase "Class", que tiene propiedades y una función.
Resumen
.isShared : Boolean devuelve true si la clase de usuario ha sido definida como clase compartida |
.isSingleton : Boolean devuelve true si la clase usuario ha sido definida como una clase singleton |
.me : 4D.Class devuelve la instancia única de la clase singleton cs.className |
.name : Text contiene el nombre del objeto 4D.Class |
.new( { ...param : any } ) : 4D.Class crea y devuelve un objeto cs.className que es una nueva instancia de la clase sobre la que se llama |
.superclass : 4D.Class devuelve la clase padre de la clase |
.isShared
Historia
Lanzamiento | Modificaciones |
---|---|
20 R5 | Añadidos |
.isShared : Boolean
Descripción
La propiedad .isShared
devuelve true
si la clase de usuario ha sido definida como clase compartida, y false
en caso contrario.
Esta propiedad es de solo lectura.
.isSingleton
Historia
Lanzamiento | Modificaciones |
---|---|
20 R5 | Añadidos |
.isSingleton : Boolean
Descripción
La propiedad .isSingleton
devuelve true
si la clase usuario ha sido definida como una clase singleton, y false
en caso contrario.
Esta propiedad es de solo lectura.
.me
Historia
Lanzamiento | Modificaciones |
---|---|
20 R5 | Añadidos |
.me : 4D.Class
Descripción
La propiedad .me
devuelve la instancia única de la clase singleton cs.className
. Si la clase singleton nunca fue instanciada de antemano, esta propiedad llama al constructor de la clase sin parámetros y crea la instancia. En caso contrario, devuelve la instancia singleton existente.
Si cs.className
no es una clase singleton, .me
es undefined por defecto.
Esta propiedad es de solo lectura.
.name
Historia
Lanzamiento | Modificaciones |
---|---|
18 R3 | Añadidos |
.name : Text
Descripción
La propiedad .name
contiene el nombre del objeto 4D.Class
. .
Esta propiedad es de solo lectura.
.new()
Historia
Lanzamiento | Modificaciones |
---|---|
18 R3 | Añadidos |
.new( { ...param : any } ) : 4D.Class
Parámetros | Tipo | Descripción | |
---|---|---|---|
param | any | -> | Parámetro(s) a pasar a la función constructor |
Result | 4D.Class | <- | Nuevo objeto de la clase |
Descripción
La función .new()
crea y devuelve un objeto cs.className
que es una nueva instancia de la clase sobre la que se llama. Esta función está disponible automáticamente en todas las clases a partir del class store cs
.
Puede pasar uno o más parámetros opcionales param, que se pasarán a la función class constructor (si existe) en la definición de la clase className. Dentro de la función constructor, el This
está vinculado al nuevo objeto que se está construyendo.
- Si se llama a
.new()
en una clase singleton que ya ha sido instanciada, se devuelve la instancia singleton, no una nueva instancia. - Si se llama a
.new()
en una clase inexistente, se devuelve un error.
Ejemplos
Para crear una nueva instancia de la clase Person:
var $person : cs.Person
$person:=cs.Person.new() //crear la nueva instancia
//$person contiene las funciones de la clase
Para crear una nueva instancia de la clase Person con parámetros:
//Class: Person.4dm
Class constructor($firstname : Text; $lastname : Text; $age : Integer)
This.firstName:=$firstname
This.lastName:=$lastname
This.age:=$age
//En un método
var $person : cs.Person
$person:=cs.Person.new("John";"Doe";40)
//$person.firstName = "John"
//$person.lastName = "Doe"
//$person.age = 40
.superclass
Historia
Lanzamiento | Modificaciones |
---|---|
18 R3 | Añadidos |
.superclass : 4D.Class
Descripción
La propiedad .superclass
devuelve la clase padre de la clase. Una superclase puede ser un objeto 4D.Class
, o un objeto cs.className
. Si la clase no tiene una clase padre, la propiedad devuelve null.
Una superclase de una clase usuario se declara en una clase utilizando la palabra clave Class extends <superclass>
.
Esta propiedad es de solo lectura.
Ejemplos
$sup:=4D.File.superclass //Document
$sup:=4D.Document.superclass //Object
$sup:=4D.Object.superclass //null
// Si creó una clase MyFile
// with `Class extends File`
$sup:=cs.MyFile.superclass //File
Ver también: Super