0Pricing
Android Academy · Aula

Construtores e init

Crie e inicialize objetos.

Construtores e init é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.

O que é um construtor?

Um construtor é um código especial executado quando você cria um objeto. Ele configura os valores iniciais do objeto.

Em Kotlin, o construtor principal é escrito logo ao lado do nome da classe.

O construtor primário

O construtor primário fica entre parênteses depois do nome da classe. Você passa os valores ao criar o objeto.

Aqui, Dog exige um nome ao ser construído.

class Dog(name: String) {
    val dogName = name
}

fun main() {
    val d = Dog("Rex")
    println(d.dogName)
}

Propriedades no construtor

Adicionar val ou var antes de um parâmetro do construtor o transforma automaticamente em uma propriedade.

Esse é o estilo mais comum e conciso do Kotlin.

class Dog(val name: String, var age: Int)

fun main() {
    val d = Dog("Rex", 3)
    println(d.name + " is " + d.age)
}

Valores padrão do construtor

Os parâmetros do construtor também podem ter valores padrão. Assim, quem chama o construtor pode omiti-los.

Aqui, age recebe 0 por padrão quando não é fornecido.

class Dog(val name: String, var age: Int = 0)

fun main() {
    val d = Dog("Max")
    println(d.age)
}

O bloco init

Um bloco init é executado como parte do construtor primário. Use-o para uma lógica de configuração que não caiba em uma única linha de propriedade.

Ele pode ler os parâmetros do construtor.

class Dog(val name: String) {
    init {
        println("Created dog: " + name)
    }
}

fun main() {
    Dog("Rex")
}

Validando em init

Um uso comum de init é verificar as entradas. Aqui, evitamos uma idade negativa usando require.

Se a verificação falhar, o objeto nunca será criado.

class Person(val age: Int) {
    init {
        require(age >= 0) { "Age cannot be negative" }
    }
}

fun main() {
    val p = Person(25)
    println(p.age)
}

Ordem de execução

Os inicializadores de propriedades e os blocos init são executados de cima para baixo, na ordem em que aparecem na classe.

Isso é importante quando uma linha depende de um valor definido acima dela.

class Demo {
    val a = 1
    init { println("a is " + a) }
    val b = a + 1
    init { println("b is " + b) }
}

fun main() {
    Demo()
}

Propriedades calculadas

Você pode calcular uma propriedade a partir dos valores do construtor dentro do corpo da classe.

Aqui, area é derivada de width e height.

class Rect(val width: Int, val height: Int) {
    val area = width * height
}

fun main() {
    println(Rect(3, 4).area)
}

Construtores secundários

Uma classe também pode ter construtores secundários usando a palavra-chave constructor. Eles devem delegar ao construtor primário com this(...).

Eles são menos comuns porque os valores padrão geralmente são suficientes.

class Dog(val name: String) {
    constructor() : this("Unknown")
}

fun main() {
    println(Dog().name)
}

Usando o novo objeto

Depois que o construtor e o init são executados, o objeto está pronto para uso. Você pode ler suas propriedades e chamar seus métodos imediatamente.

Aqui, o construtor configura um saldo, e um método gasta parte dele.

class Account(var balance: Int) {
    fun spend(amount: Int) {
        balance = balance - amount
    }
}

fun main() {
    val acc = Account(100)
    acc.spend(30)
    println(acc.balance)
}

Construtores preparam o objeto

Os construtores e os blocos init garantem que todo objeto comece em um estado válido.

  • Construtor primário: declara e recebe valores.
  • init: executa a configuração e a validação.

Isso evita objetos incompletos no seu aplicativo.

Verificação rápida

Teste sua compreensão sobre construtores e init.

Recapitulação

Você aprendeu sobre o construtor primário, sobre declarar propriedades com val/var nele e sobre atribuir valores padrão a elas.

O bloco init cuida da configuração e da validação e é executado de cima para baixo junto com os inicializadores de propriedades. Em seguida, você conhecerá as classes de dados, que geram esse código repetitivo automaticamente.

Perguntas Frequentes

A aula “Construtores e init” é grátis?

Sim — o texto completo de “Construtores e init” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.

O que vou aprender em “Construtores e init”?

Crie e inicialize objetos. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Android Academy?

Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Construtores e init”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Android Academy?

Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Declarando funções
  2. Classes e propriedades
  3. Construtores e init
  4. Classes de dados
← Voltar para Android Academy