O que é class em Kotlin?

A palavra-chave class em Kotlin é usada para definir classes, que são a base da programação orientada a objetos. Uma classe funciona como um molde para criar objetos, agrupando propriedades e comportamentos relacionados.

Se você vem do Java, vai adorar a quantidade de código que Kotlin elimina. O que levaria dezenas de linhas em Java, em Kotlin fica resolvido em poucas.

Sintaxe básica

class Pessoa(val nome: String, var idade: Int)

fun main() {
    val pessoa = Pessoa("Rafael", 28)
    println("${pessoa.nome} tem ${pessoa.idade} anos.")

    pessoa.idade = 29 // idade é var, pode alterar
}

O construtor primário já vai direto na declaração da classe, entre parênteses. As propriedades val e var são declaradas ali mesmo — sem precisar de campos separados, getters ou setters.

Métodos e inicialização

Você pode adicionar funções dentro da classe e usar o bloco init para lógica de inicialização:

class ContaBancaria(val titular: String, var saldo: Double) {

    init {
        require(saldo >= 0) { "Saldo inicial não pode ser negativo" }
    }

    fun depositar(valor: Double) {
        saldo += valor
        println("Depósito de R$ $valor realizado. Saldo: R$ $saldo")
    }

    fun sacar(valor: Double) {
        if (valor <= saldo) {
            saldo -= valor
            println("Saque de R$ $valor realizado. Saldo: R$ $saldo")
        } else {
            println("Saldo insuficiente!")
        }
    }
}

Construtores secundários

Além do construtor primário, dá pra ter construtores secundários usando constructor:

class Produto(val nome: String, val preco: Double) {
    constructor(nome: String) : this(nome, 0.0)
}

Herança

Por padrão, classes em Kotlin são final — não podem ser herdadas. Para permitir herança, é preciso usar o modificador open:

open class Animal(val nome: String)
class Cachorro(nome: String, val raca: String) : Animal(nome)

Classes em Kotlin são diretas ao ponto. Menos boilerplate, mais produtividade.