Sobes.tech
Junior — Middle

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):

  1. Inicializador padrão (default initializer) — criado automaticamente se todas as propriedades tiverem valores padrão e não houver outros inicializadores.

  2. 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.

  3. 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.