En esta lección, vamos a sumergirnos en un tema clave en el mundo de la programación orientada a objetos: las clases en Kotlin.
Profundicemos en cómo funcionan y cómo pueden transformar la forma en que construimos y organizamos nuestro código.
La Base de los Objetos
Las clases son el corazón de la programación orientada a objetos.
Si aún no estás seguro de qué son o cómo se aplican, ¡no te preocupes! Iremos paso a paso, desglosando cada aspecto para que puedas comprender cómo estas piezas clave se unen para formar una base sólida en la construcción de programas.
¿Recuerdas los objetos que exploramos previamente aquí?, ahora es momento de entender cómo se forman.
Las clases actúan como los planos para crear estos objetos, como moldes que determinan cómo se verán y se comportarán.
Es como tener una serie de recetas para hacer diferentes tipos de pasteles.
Construyendo Abstracciones
Piensa en las clases como un medio para abstraer conceptos y datos comunes.
Las abstracciones nos permiten analizar objetos, entender qué datos y funcionalidades tienen en común para entonces definir un tipo de dato General que los defina.
Boom! abstraemos el objeto en una clase.
La palabra reservada para crear una clase en Kotlin es class
seguido del nombre de la abstracción:
class Transport
Abriendo la Puerta a los Objetos
Una vez que tengamos nuestras clases definidas, veremos cómo instanciar objetos basados en ellas.
Piensa en esto como si estuvieras utilizando un molde para crear una figura de arcilla. Cada objeto creado a partir de una clase es como una versión única y utilizable de esa figura.
Imagina que has diseñado el molde perfecto para un coche de carreras. Instanciar un objeto es como tomar ese molde y crear un coche de carreras único y funcional.
Explorando Métodos y Funcionalidades
Una de las mejores partes de las clases son los métodos y funcionalidades que pueden contener. Estos son como habilidades especiales que los objetos pueden llevar a cabo.
Las clases, son templates o estructuras que se crean a partir del análisis de un objeto, estas se componen de atributos y funcionalidades y nos permiten crear nuestros propios tipos de datos.
Del Molde al Objeto
Una vez que hayamos explorado la creación de clases, descubriremos cómo instanciar objetos basados en estas clases.
Imagina que has diseñado el molde perfecto para un coche de carreras. Instanciar un objeto es como tomar ese molde y crear un coche de carreras único y funcional.
// Definición de la clase "Carro"
class Carro(val marca: String, val modelo: String, val año: Int) {
fun acelerar() {
println("$marca $modelo está acelerando.")
}
fun frenar() {
println("$marca $modelo está frenando.")
}
}
fun main() {
// Instanciación de objetos basados en la clase "Carro"
val carro1 = Carro("Ferrari", "488 GTB", 2023)
val carro2 = Carro("Tesla", "Model S", 2023)
// Llamando a métodos de los objetos
carro1.acelerar()
carro2.frenar()
}
¡Otro Ejercicio!
Bien, ahora veamos cómo crear una clase a partir de ciertos requerimientos.
Imaginemos que estamos creando una pequeña aplicación para gestionar canciones y sus reproducciones.
En el siguiente ejercicio, nos enfrentamos al desafío de mostrar y detener canciones según los requerimientos específicos.
Requerimientos
- Mostrar la Segunda Canción: Mostrar el título y el artista de la segunda canción en pantalla.
- Detener y Mostrar el Título: Detener la segunda canción y mostrar su título.
- Reproducir la Tercera Canción: Reproducir la tercera canción y mostrar su título y artista.
La Solución
Para resolver estos requerimientos, vamos a crear una clase llamada Song
que encapsulará la información de cada canción. A continuación, definiremos métodos en esta clase para manejar las reproducciones y la información mostrada.
class Song(private val title: String, private val artist: String) {
fun play() {
println("Reproduciendo: $title - $artist")
}
fun stop() {
println("Canción detenida: $title")
}
}
fun main() {
val song1 = Song("Solo", "Jennie")
val song2 = Song("Whistle", "BlackPink")
val song3 = Song("New Roots", "Alice Merton")
song2.play()
song2.stop()
song3.play()
}
En este código, hemos definido la clase Song
con atributos title
y artist
, y hemos creado métodos play()
y stop()
para mostrar las acciones de reproducción y detención de la canción.
Hacia Nuevos Horizontes
A medida que avanzamos en esta serie, también abordaremos conceptos más avanzados, como la relación entre clases y los modificadores de acceso.
No te preocupes si esto suena un poco abrumador en este momento; te llevaré de la mano a través de cada detalle para que puedas aprovechar al máximo las clases en Kotlin.
En mi Curso de Diseño Orientado a Objetos y Principios SOLID te enseño todo desde cero y paso a paso con ejemplos reales, te dejé un regalo en este link para que lo adquieras a un precio especial.
😊 Gracias por comparitr haces un excelente trabajo divulgando conocimiento.