Classes
Orientação a objetos é uma forma de organizar código: em vez de espalhar dados e funções soltos, você agrupa o que pertence junto dentro de uma classe. A linguagem égua suporta isso nativamente, com classes, objetos, métodos e herança.
Criando uma classe
Uma classe é uma estrutura que define as características e comportamentos de um objeto. Na linguagem égua, você pode criar uma classe usando a palavra-chave classe seguida pelo nome da classe.
Exemplo:
classe Teste {}Instanciando uma classe
Uma instância é um objeto criado a partir de uma classe. Para criar uma, chame o nome da classe seguido de parênteses, como se fosse uma função.
Exemplo:
classe Teste {}
var teste = Teste();
escreva(teste); // Saída: "<Teste instância>"Métodos
Os métodos são funções associadas a uma classe que definem os comportamentos do objeto. Na linguagem égua, você pode definir métodos dentro de uma classe sem a palavra-chave função. Os métodos podem ser acessados através da instância do objeto usando o operador ..
Exemplo:
classe Teste {
teste_função() {
escreva("olá");
}
}
var teste = Teste();
teste.teste_função(); // Saída: "olá"Referência à instância (isto)
Dentro de um método, isto se refere à instância atual do objeto, o que dá acesso ao estado e aos métodos dela.
Exemplo:
classe Teste {
construtor() {
escreva(isto);
}
}
var teste = Teste(); // Saída: "<Teste instância>"Estado do objeto
O estado de um objeto se refere às variáveis que são atribuídas a ele. Na linguagem égua, você pode definir o estado de um objeto usando a palavra-chave isto dentro de um método. Isso permite que cada instância do objeto tenha seu próprio estado.
Exemplo:
classe Teste {
teste_função() {
isto.a = 100;
escreva(isto.a); // Saída: "100"
}
}
var teste = Teste();
teste.teste_função();Construtor
O construtor é um método especial que é automaticamente chamado ao instanciar a classe. Ele é usado para inicializar o estado do objeto ou executar qualquer código de configuração necessário.
Exemplo:
classe Teste {
construtor() {
escreva("começou");
}
}
var teste = Teste(); // Saída: "começou"Herança
Uma classe pode herdar atributos e métodos de uma classe pai, reaproveitando código e adicionando o que for específico da classe filha.
Exemplo:
classe Animal {}
classe Cachorro herda Animal {}classe Animal {
corre() {
escreva("correndo");
}
}
classe Cachorro herda Animal {}
var thor = Cachorro();
thor.corre(); // Saída: "correndo"Também é possível chamar um método pertencente à classe pai na classe filha usando a palavra-chave super. Isso permite acessar e executar o código da classe pai.
Exemplo:
classe A {
data(data) {
escreva(data);
}
}
classe B herda A {
construtor(data) {
super.data(data);
}
}
var a = B("13/12/1981");Neste exemplo, a classe B herda de A e chama o método data da classe pai com super.data(data), dentro do próprio construtor.
