Class
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 |
.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
Release | Modifications |
---|---|
20 R5 | Ajout |
.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
Release | Modifications |
---|---|
20 R5 | Ajout |
.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
Release | Modifications |
---|---|
20 R5 | Ajout |
.me : 4D.Class
Description
Sommaire Sommaire 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
Release | Modifications |
---|---|
18 R3 | Ajout |
.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
Release | Modifications |
---|---|
18 R3 | Ajout |
.new( { ...param : any } ) : 4D.Class
Paramètres | Type | Description | |
---|---|---|---|
param | any | -> | Paramètre(s) à passer à la fonction constructeur |
Résultat | 4D.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.
- 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
Release | Modifications |
---|---|
18 R3 | Ajout |
.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