0Pricing
Kotlin Academy · Aula

Propriedades e Métodos de Enumerações

Adicione comportamentos

Propriedades e Métodos de Enumerações é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 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.

Enumerações podem conter dados

As constantes de uma enumeração podem conter propriedades. Declare um construtor na classe de enumeração e passe valores ao listar cada constante.

enum class Coin(val cents: Int) {
    PENNY(1), NICKEL(5), DIME(10)
}

fun main() {
    println(Coin.DIME.cents)
}

Parâmetros do construtor

Os valores entre parênteses após cada constante são argumentos do construtor da enumeração. Eles se tornam propriedades somente para leitura dessa constante.

enum class Planet(val gravity: Double) {
    EARTH(9.8), MOON(1.6)
}

fun main() {
    println(Planet.MOON.gravity)
}

Várias propriedades

Uma enumeração pode declarar várias propriedades de uma só vez.

enum class Fruit(val color: String, val calories: Int) {
    APPLE("red", 95),
    BANANA("yellow", 105)
}

fun main() {
    val f = Fruit.BANANA
    println("${f.color} ${f.calories}")
}

Adicionando métodos

Você pode declarar funções comuns no corpo da enumeração. Todas as constantes compartilham essas funções.

enum class Temp(val celsius: Int) {
    COLD(5), WARM(25);

    fun toFahrenheit(): Int = celsius * 9 / 5 + 32
}

fun main() {
    println(Temp.WARM.toFahrenheit())
}

A regra do ponto e vírgula

Quando uma enumeração tem membros além das constantes, como métodos ou propriedades, você deve colocar um ponto e vírgula após a última constante.

enum class Op {
    ADD, SUB;

    fun describe() = "Operation: $name"
}

fun main() {
    println(Op.ADD.describe())
}

Métodos abstratos por constante

Enumerações podem declarar métodos abstratos que cada constante substitui, dando a cada constante seu próprio comportamento.

enum class Math {
    PLUS { override fun apply(a: Int, b: Int) = a + b },
    TIMES { override fun apply(a: Int, b: Int) = a * b };

    abstract fun apply(a: Int, b: Int): Int
}

fun main() {
    println(Math.TIMES.apply(3, 4))
}

Propriedades calculadas

Os acessadores de propriedades podem calcular valores com base nos dados da constante.

enum class Account(val balance: Int) {
    SAVINGS(1000), CHECKING(50);

    val isRich: Boolean get() = balance > 500
}

fun main() {
    println(Account.SAVINGS.isRich)
}

Combinando dados e comportamento

Propriedades e métodos permitem que uma enumeração modele um domínio fechado e rico.

enum class Shape(val sides: Int) {
    TRIANGLE(3), SQUARE(4);

    fun describe() = "$name has $sides sides"
}

fun main() {
    println(Shape.SQUARE.describe())
}

Usando propriedades na lógica

As propriedades das constantes são úteis em cálculos e condições.

enum class Tier(val discount: Int) {
    BRONZE(5), GOLD(20)
}

fun price(base: Int, tier: Tier) = base - base * tier.discount / 100

fun main() {
    println(price(100, Tier.GOLD))
}

Valores padrão de propriedades

Os construtores de enumerações aceitam valores padrão para parâmetros, assim como qualquer construtor.

enum class Role(val canEdit: Boolean = false) {
    VIEWER, EDITOR(true)
}

fun main() {
    println(Role.VIEWER.canEdit)
    println(Role.EDITOR.canEdit)
}

Um modelo completo

Aqui, uma enumeração modela status HTTP com dados e comportamento.

enum class Http(val code: Int) {
    OK(200), NOT_FOUND(404);

    fun isError() = code >= 400
}

fun main() {
    println(Http.NOT_FOUND.isError())
}

Verificação rápida

Teste sua compreensão sobre propriedades e métodos de enumerações.

Recapitulação

Você aprendeu que as enumerações podem conter comportamento:

  • Adicione um construtor para dar propriedades às constantes.
  • Declare métodos compartilhados (use um ponto e vírgula após as constantes).
  • Métodos abstratos permitem que cada constante defina seu próprio comportamento.
  • Propriedades calculadas e com valores padrão funcionam normalmente.
enum class Coin(val cents: Int) {
    PENNY(1), DIME(10);
    fun double() = cents * 2
}

fun main() {
    println(Coin.DIME.double())
}

Perguntas Frequentes

A aula “Propriedades e Métodos de Enumerações” é grátis?

Sim — o texto completo de “Propriedades e Métodos de Enumerações” é 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 “Propriedades e Métodos de Enumerações”?

Adicione comportamentos 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 2 de 4.

Quanto tempo leva a aula “Propriedades e Métodos de Enumerações”?

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. Definição de Enumerações
  2. Propriedades e Métodos de Enumerações
  3. Enumerações com when
  4. Valores e Ordinais de Enumerações
← Voltar para Kotlin Academy