Aller au contenu principal
Version: 20 R5 BETA

Classe

Lorsqu'une classe utilisateur est définie dans le projet, elle est chargée dans l'environnement de langage 4D. Une classe est un objet lui-même, de la classe "Class", qui a des propriétés et une fonction.

Sommaire

.isShared : Boolean
renvoie true si la classe utilisateur a été définie comme classe partagée
.isSingleton : Boolean
renvoie true si la classe utilisateur a été définie comme une classe singleton
.me : 4D.Class
renvoie l'instance unique de la classe singleton cs.className
.name : Text
contient le nom de l'objet 4D.Class
.new( { ...param : any } ) : 4D.Class
crée et retourne un objet cs.className qui est une nouvelle instance de la classe sur laquelle elle est appelée
.superclass : 4D.Class
retourne la classe parente de la classe

.isShared

Historique
ReleaseModifications
20 R5Ajout

.isShared : Boolean

Description

La propriété .isShared renvoie true si la classe utilisateur a été définie comme classe partagée, et false sinon.

Cette propriété est en lecture seule.

.isSingleton

Historique
ReleaseModifications
20 R5Ajout

.isSingleton : Boolean

Description

La propriété .isSingleton renvoie true si la classe utilisateur a été définie comme une classe singleton, et false sinon.

Cette propriété est en lecture seule.

.me

Historique
ReleaseModifications
20 R5Ajout

.me : 4D.Class

Description

La propriété .me renvoie l'instance unique de la classe singleton cs.className. Si la classe singleton n'a jamais été instanciée au préalable, cette propriété appelle le constructeur de la classe sans paramètres et crée l'instance. Sinon, elle renvoie l'instance singleton existante.

Si cs.className n'est pas une classe singleton, .me est undefined par défaut.

Cette propriété est en lecture seule.

.name

Historique
ReleaseModifications
18 R3Ajout

.name : Text

Description

La propriété .name contient le nom de l'objet 4D.Class. Les noms de classe sont sensibles à la casse.

Cette propriété est en lecture seule.

.new()

Historique
ReleaseModifications
18 R3Ajout

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

ParamètresTypeDescription
paramany->Paramètre(s) à passer à la fonction constructeur
Résultat4D.Class<-Nouvel objet de la classe

Description

La fonction .new() crée et retourne un objet cs.className qui est une nouvelle instance de la classe sur laquelle elle est appelée. Cette fonction est automatiquement disponible sur toutes les classes à partir du class store cs.

Vous pouvez passer un ou plusieurs paramètres optionnels param, qui seront passés à la fonction class constructor (le cas échéant) dans la définition de la classe className. Dans la fonction constructor, le This est lié au nouvel objet en cours de construction.

Notes
  • Si .new() est appelé sur une classe singleton qui a déjà été instanciée, l'instance singleton est retournée, et non une nouvelle instance.
  • Si .new() est appelé sur une classe inexistante, une erreur est retournée.

Exemples

Pour créer une nouvelle instance de la classe Person :

var $person : cs.Person  
$person:=cs.Person.new() //créer la nouvelle instance
//$person contient les fonctions de la classe

Pour créer une nouvelle instance de la classe Person avec des paramètres :

//Class: Person.4dm
Class constructor($firstname : Text; $lastname : Text; $age : Integer)
This.firstName:=$firstname
This.lastName:=$lastname
This.age:=$age
//Dans une méthode
var $person : cs.Person
$person:=cs.Person.new("John";"Doe";40)
//$person.firstName = "John"
//$person.lastName = "Doe"
//$person.age = 40

.superclass

Historique
ReleaseModifications
18 R3Ajout

.superclass : 4D.Class

Description

La propriété .superclass retourne la classe parente de la classe. Une superclasse peut être un objet 4D.Class, ou un objet cs.className. Si la classe n'a pas de classe parente, la propriété retourne null.

Une superclasse d'une classe utilisateur est déclarée dans une classe en utilisant le mot-clé Class extends <superclass>.

Cette propriété est en lecture seule.

Exemples

$sup:=4D.File.superclass //Document
$sup:=4D.Document.superclass //Object
$sup:=4D.Object.superclass //null

// Si vous avez créé une classe MyFile
// avec `Class extends File`
$sup:=cs.MyFile.superclass //File

Voir aussi : Super