0Pricing
Kotlin Academy · Aula

Declaração de Classes de Dados

Classes de modelo concisas

Declaração de Classes de Dados é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 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 Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

Classes para armazenar dados

Muitas classes existem apenas para agrupar alguns valores: um usuário, um ponto, um resultado.

O Kotlin oferece a classe de dados, uma maneira concisa de declarar essas classes de modelo com muitos comportamentos gratuitos.

Declarando uma classe de dados

Adicione a palavra-chave data antes de class e liste as propriedades no construtor.

Essa única linha fornece um modelo completo.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Alice", 30)
    println(u.name)
    println(u.age)
}

toString automático

Uma classe de dados gera automaticamente um toString() legível. Imprimir o objeto exibe o nome da classe e os valores das propriedades.

Compare isso com uma classe comum, que imprimiria um hash enigmático.

data class User(val name: String, val age: Int)

fun main() {
    val u = User("Bob", 25)
    println(u)
}

As propriedades são obrigatórias

Uma classe de dados deve declarar pelo menos uma propriedade no construtor primário.

Cada parâmetro deve ser val ou var para se tornar uma propriedade que as funções geradas possam usar.

data class Point(val x: Int, val y: Int)

fun main() {
    val p = Point(3, 4)
    println(p)
}

Propriedades val e var

Use val para propriedades somente leitura e var para propriedades mutáveis.

Classes de dados imutáveis geralmente são preferíveis porque são mais fáceis de compreender.

data class Counter(var count: Int)

fun main() {
    val c = Counter(0)
    c.count = 5
    println(c)
}

Valores padrão de parâmetros

Assim como qualquer construtor, uma classe de dados pode ter valores padrão.

Isso permite que os chamadores omitam os parâmetros que não precisam definir.

data class User(val name: String, val active: Boolean = true)

fun main() {
    val u = User("Mia")
    println(u)
}

Argumentos nomeados

Combine classes de dados com argumentos nomeados para obter uma construção clara e autoexplicativa.

Isso é especialmente útil quando várias propriedades compartilham o mesmo tipo.

data class Rect(val width: Int, val height: Int)

fun main() {
    val r = Rect(width = 10, height = 5)
    println(r)
}

Adicionando métodos

Uma classe de dados ainda pode ter um corpo com suas próprias funções e propriedades calculadas.

As funções geradas ficam ao lado de tudo o que você adicionar.

data class Circle(val radius: Double) {
    fun area(): Double = 3.14159 * radius * radius
}

fun main() {
    val c = Circle(2.0)
    println(c.area())
}

Propriedades fora do construtor

Apenas as propriedades do construtor primário são usadas pelas funções geradas.

Uma propriedade declarada no corpo faz parte do objeto, mas é ignorada por toString, equals e funções semelhantes.

data class User(val name: String) {
    var nickname: String = ""
}

fun main() {
    val u = User("Alex")
    u.nickname = "Al"
    println(u) // nickname not shown
    println(u.nickname)
}

Quando usar classes de dados

Escolha uma classe de dados quando um objeto servir principalmente para transportar valores:

  • DTOs e modelos de API
  • Coordenadas, intervalos e resultados
  • Pacotes de configuração

Evite-as para classes estruturadas em torno de comportamentos complexos ou herança.

Reunindo tudo

Uma classe de dados é uma declaração compacta de modelo:

  • Prefixe com data e liste as propriedades
  • Obtenha toString, equals, hashCode e copy gratuitamente
  • Oferece valores padrão, argumentos nomeados e métodos adicionais
data class Book(val title: String, val pages: Int = 0)

fun main() {
    val b = Book(title = "Kotlin", pages = 300)
    println(b)
}

Verificação rápida

Teste sua compreensão sobre a declaração de classes de dados.

Recapitulação

Você aprendeu a declarar classes de dados:

  • A palavra-chave data gera funções padrão
  • As propriedades do construtor determinam o comportamento gerado
  • Valores padrão e argumentos nomeados tornam essas classes flexíveis

A seguir, você explorará em profundidade as funções geradas copy e equals.

Perguntas Frequentes

A aula “Declaração de Classes de Dados” é grátis?

Sim — o texto completo de “Declaração de Classes de Dados” é 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 Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “Declaração de Classes de Dados”?

Classes de modelo concisas Você pratica Kotlin 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 Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin 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 1 de 4.

Quanto tempo leva a aula “Declaração de Classes de Dados”?

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 Kotlin Academy?

Sim. Cada aula de Kotlin 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. Declaração de Classes de Dados
  2. copy e equals
  3. Declarações de Desestruturação
  4. Classes de Dados em Coleções
← Voltar para Kotlin Academy