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
- Definição de Enumerações
- Propriedades e Métodos de Enumerações
- Enumerações com when
- Valores e Ordinais de Enumerações