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
- Declarando funções
- Classes e propriedades
- Construtores e init
- Classes de dados