Saltar para o conteúdo principal
Versão: 20 R5 BETA

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
ReleaseMudanças
20 R5Adicionado

.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
ReleaseMudanças
20 R5Adicionado

.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
ReleaseMudanças
20 R5Adicionado

.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
ReleaseMudanças
18 R3Adicionado

.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
ReleaseMudanças
18 R3Adicionado

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

ParâmetroTipoDescrição
paramany->Parâmetros a passar à função constructor
Resultados4D. 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.

Notas
  • 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
ReleaseMudanças
18 R3Adicionado

.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