Saltar al contenido principal
Versión: 21 R4 BETA

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​

.isSessionSingleton : Boolean
devuelve true si la clase usuario ha sido definida como una clase singleton de sesión
.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.Object
devuelve la instancia única de la clase singleton cs.className
.name : Text
contiene el nombre del objeto 4D.Class
.new( { ...param : any } ) : 4D.Object
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

.isSessionSingleton​

Historia
LanzamientoModificaciones
20 R7Añadidos

.isSessionSingleton : Boolean

Descripción​

La propiedad .isSessionSingleton devuelve true si la clase usuario ha sido definida como una clase singleton de sesión, y false en caso contrario.

Esta propiedad es de solo lectura.

.isShared​

Historia
LanzamientoModificaciones
20 R5Añ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
LanzamientoModificaciones
20 R5Añ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
LanzamientoModificaciones
20 R5Añadidos

.me : 4D.Object

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
LanzamientoModificaciones
18 R3Añadidos

.name : Text

Descripción​

La propiedad .name contiene el nombre del objeto 4D.Class. .

Esta propiedad es de solo lectura.

.new()​

Historia
LanzamientoModificaciones
18 R3Añadidos

.new( { ...param : any } ) : 4D.Object

ParámetrosTipoDescripción
paramany->Parámetro(s) a pasar a la función constructor
Resultado4D.Object<-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.

Notas
  • 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
LanzamientoModificaciones
18 R3Añ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.

Para definir una superclase para una clase usuario, utilice la palabra clave extends como: 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