Class
Quando uma classe de usuário é [defined] (Concepts/classes.md#class-definition) no projeto, ela é carregada no ambiente de linguagem 4D. Uma classe é um objeto em si mesmo, da classe "Class", que tem propriedades e uma função.
Resumo
.isShared : Boolean retorna true se a classe do usuário tiver sido definida como shared class |
.isSingleton : Boolean retorna true se a classe do usuário tiver sido definida como uma singleton class |
.me : 4D.Class retorna a instância singleton da classe singleton cs.className |
.name : Text contém o nome do objeto 4D.Class |
.new( { ...param : any } ) : 4D.Class cria e retorna um objeto cs.className que é uma nova instância da classe na qual ela é chamada |
.superclass : 4D.Class retorna a classe pai da classe |
.isShared
História
Release | Mudanças |
---|---|
20 R5 | Adicionado |
.isShared : Boolean
Descrição
A propriedade .isShared
retorna true
se a classe do usuário tiver sido definida como shared class, e false
caso contrário.
Essa propriedade é somente leitura.
.isSingleton
História
Release | Mudanças |
---|---|
20 R5 | Adicionado |
.isSingleton : Boolean
Descrição
A propriedade .isSingleton
retorna true
se a classe do usuário tiver sido definida como uma singleton class, e false
caso contrário.
Essa propriedade é somente leitura.
.me
História
Release | Mudanças |
---|---|
20 R5 | Adicionado |
.me : 4D.Class
Descrição
A propriedade .me
retorna a instância singleton da classe singleton cs.className
. Se a classe singleton nunca tiver sido instanciada anteriormente, essa propriedade chamará o construtor da classe sem parâmetros e criará a instância. Caso contrário, ele retorna a instância singleton existente.
Se cs.className
não for uma classe singleton, .me
será indefinido por padrão.
Essa propriedade é somente leitura.
.name
História
Release | Mudanças |
---|---|
18 R3 | Adicionado |
.name : Text
Descrição
A propriedade .name
contém o nome do objeto 4D.Class
. Nomes de classe diferenciam minúsculas de maiúsculas.
Essa propriedade é somente leitura.
.new()
História
Release | Mudanças |
---|---|
18 R3 | Adicionado |
.new( { ...param : any } ) : 4D.Class
Parâmetro | Tipo | Descrição | |
---|---|---|---|
param | any | -> | Parâmetros a passar à função constructor |
Resultados | 4D. Class | <- | Novo objeto da classe |
Descrição
A função .new()
cria e retorna um objeto cs.className
que é uma nova instância da classe na qual ela é chamada. Essa função está automaticamente disponível em todas as classes do armazenamento de classes [cs
] (Concepts/classes.md#cs).
Você pode passar um ou mais parâmetros param opcionais, que serão passados para a função class constructor (se houver) na definição da classe className. Na função do construtor, o [This
] (Concepts/classes.md#this) é vinculado ao novo objeto que está sendo construído.
- Se
.new()
for chamado em uma singleton class que já tenha sido instanciada, a instância singleton será retornada, e não uma nova instância. - Se
.new()
for chamado em uma classe inexistente, será retornado um erro.
Exemplos
Para criar uma nova instância da classe Person com parâmetros:
var $person : cs. Person
$person:=cs. Person.new() //create the new instance
//$person contains functions of the class
Para criar uma nova instância da classe Person:
//Class: Person.4dm
Class constructor($firstname : Text; $lastname : Text; $age : Integer)
This.firstName:=$firstname
This.lastName:=$lastname
This.age:=$age
//In a method
var $person : cs. Person
$person:=cs. Person.new("John";"Doe";40)
//$person.firstName = "John"
//$person.lastName = "Doe"
//$person.age = 40
.superclass
História
Release | Mudanças |
---|---|
18 R3 | Adicionado |
.superclass : 4D.Class
Descrição
A propriedade .superclass
retorna a classe pai da classe. Uma superclasse pode ser um objeto 4D.Class
ou um objeto cs.className
. Se a classe não tiver uma classe pai, a propriedade retorna null**.
Uma superclasse de uma classe de usuário é declarada em uma classe usando a palavra-chave [Class extends <superclass>
] (Concepts/classes.md#class-extends-classname).
Essa propriedade é somente leitura.
Exemplos
$sup:=4D.File.superclass //Document
$sup:=4D.Document.superclass //Object
$sup:=4D.Object.superclass //null
// Se você criou uma classe MyFile
// com `Class extends File`
$ sup:=cs.MyFile.superclass //File
Veja também: Super