Creación de clases y objetos en Kotlin
Clase 15 de 35 • Curso de Kotlin
Resumen
Cuando necesitamos representar elementos del mundo real en programación, las clases y los objetos son la opción ideal. A través de Kotlin, podremos entender mejor estos conceptos creando ejemplos claros como el de un email con distintas propiedades y acciones posibles, tales como marcarlo como leído o no leído. Este proceso nos ayudará a entender cómo estructurar datos y funcionalidades fácilmente.
¿Qué es una clase y para qué sirve en Kotlin?
Una clase es como un molde o plano que te permite definir propiedades (atributos) y funcionalidades (métodos). Al igual que en el ejemplo del correo electrónico, puedes crear una clase Email
con atributos como asunto, remitente, mensaje y una propiedad para indicar si ha sido leído o no. Las funcionalidades están representadas por métodos como marcar como leído o no leído, o mostrar información.
Por ejemplo, puedes definir una clase así:
class Email(val asunto: String, val remitente: String, val mensaje: String) {
var leido: Boolean = false
fun marcarComoLeido() {
leido = true
}
fun marcarComoNoLeido() {
leido = false
}
fun mostrarInfo() {
println("Remitente: $remitente, Asunto: $asunto, Leído: $leido")
}
}
Luego, puedes crear objetos (instancias) que vivirán realmente en memoria basados en ese molde inicial. Un ejemplo es:
val emailUno = Email(
asunto = "Reunión viernes",
remitente = "carlos@email.com",
mensaje = "No olvides la reunión del viernes."
)
emailUno.mostrarInfo()
¿Cómo relacionar una clase con otra y crear colecciones de objetos?
A veces, una clase podrá contener o depender de otras clases. Un ejemplo claro es una bandeja de correos (BandejaEmails
) que contenga una lista mutable de objetos tipo Email
. Para manejar esta relación, se utilizan estructuras como listas mutables.
Aquí tienes un ejemplo práctico:
class BandejaEmails {
val emails = mutableListOf<Email>()
fun agregarEmail(email: Email) {
emails.add(email)
}
fun contarNoLeidos(): Int {
var contador = 0
for (email in emails) {
if (!email.leido) {
contador++
}
}
return contador
}
}
Luego instancias objetos de correos electrónicos y los agregas a tu bandeja:
val emailUno = Email("Reunión viernes", "carlos@email.com", "No olvides la reunión del viernes.")
val emailDos = Email("Saludos", "ana@email.com", "Un saludo cordial.")
val emailTres = Email("Factura", "tienda@email.com", "Adjunto la factura.")
emailUno.marcarComoLeido()
val bandejaEmails = BandejaEmails()
bandejaEmails.agregarEmail(emailUno)
bandejaEmails.agregarEmail(emailDos)
bandejaEmails.agregarEmail(emailTres)
println("Faltan por leer: ${bandejaEmails.contarNoLeidos()}") // Resultado debería ser 2
¿Cómo puedes practicar creando una clase con propiedades simples?
Para poner en práctica lo aprendido, puedes crear por tu cuenta una clase sencilla llamada Contacto
:
- Esta clase debe tener dos propiedades: nombre y email.
- También debe incluir una función que imprima los datos del contacto.
La implementación sería algo parecido a esto:
class Contacto(val nombre: String, val email: String) {
fun mostrarContacto() {
println("Nombre: $nombre, Email: $email")
}
}
val contactoUno = Contacto("María", "maria@example.com")
contactoUno.mostrarContacto()
Este enfoque práctico te permitirá interiorizar rápidamente cómo funcionan las clases, objetos y métodos, fortaleciendo tu manejo del lenguaje Kotlin. ¿Te animas a practicar creando nuevas clases ahora mismo?