classe / spawna / esse-cara / novo
Fundamentos do XanaScript • Aula 15 de 20
Classes são plantas de objetos: definem os dados (atributos) e o comportamento (métodos) que cada instância terá. O XanaScript usa classe, spawna (construtor), esse-cara (this) e novo (instancia).
classe Animal {
spawna(nome) {
esse-cara.nome = nome
}
metodo falar() {
volta "Au au " + esse-cara.nome
}
}
cria a = novo Animal("Bidu")
grita-ae(a.nome) // Bidu
grita-ae(a.falar()) // Au au BiduO que cada keyword faz?
| Keyword | Função |
|---|---|
classe |
declara a classe (o molde) |
spawna |
construtor: roda ao criar instância, monta o objeto |
esse-cara |
"this": refere-se à instância atual |
novo |
cria uma instância nova a partir da classe |
metodo |
função que pertence à classe |
Por que classes existem?
Você já viu objetos ({ nome: "Ana", idade: 25 }). Classes levam isso além: garantem que toda instância tenha a mesma forma e juntam dados E comportamento num só lugar.
Sem classe, você teria que escrever a função falar pra cada animal separadamente:
// Com classe: o comportamento vem junto
cria a = novo Animal("Bidu")
a.falar()
// Sem classe: você precisaria recriar a lógica pra cada objetoO que o spawna faz?
spawna é o primeiro método que roda. Ele inicializa o objeto. O novo chama o spawna automaticamente:
cria a = novo Animal("Bidu")
// 1. cria um objeto vazio da classe Animal
// 2. chama spawna("Bidu")
// 3. esse-cara.nome = "Bidu" grava o nome na instânciaPor que esse-cara (this)?
Quando você tem duas instâncias, os métodos são os MESMOS — mas esse-cara diz "use os dados desta instância":
cria a = novo Animal("Bidu")
cria b = novo Animal("Rex")
grita-ae(a.falar()) // Au au Bidu (esse-cara = a)
grita-ae(b.falar()) // Au au Rex (esse-cara = b)O esse-cara é a ligação entre o código genérico do método e os dados específicos da instância.