Que tipos de construtores são implementados na classe e em que eles se diferenciam?
sobes.tech IA
Resposta da IA
Na classe em Swift, normalmente implementam-se os seguintes tipos de construtores (inicializadores):
-
Inicializador padrão (default initializer) — criado automaticamente se todas as propriedades tiverem valores padrão e não houver outros inicializadores.
-
Inicializador com parâmetros (designated initializer) — o inicializador principal que inicializa todas as propriedades da classe. A chamada de outros inicializadores dentro da classe é feita através de
self.init. -
Inicializadores convenientes (convenience initializer) — inicializadores auxiliares que chamam o inicializador designado. Usados para simplificar a criação de objetos com diferentes conjuntos de parâmetros.
Diferenças:
- Os inicializadores designados inicializam todas as propriedades e chamam os inicializadores da superclasse.
- Os inicializadores convenientes chamam outros inicializadores da mesma classe e não podem inicializar propriedades diretamente.
Exemplo:
class Person {
var name: String
var age: Int
// Inicializador designado
init(name: String, age: Int) {
self.name = name
self.age = age
}
// Inicializador de conveniência
convenience init(name: String) {
self.init(name: name, age: 0) // chamada ao designado
}
}
Assim, os construtores proporcionam flexibilidade na inicialização de objetos com diferentes parâmetros e garantem a correta inicialização de todas as propriedades.