Saltar al contenido principal
Versión: 20 R6

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
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.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
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.Class

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

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.

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