Introducción
En este módulo, exploraremos los conceptos fundamentales de la Programación Orientada a Objetos (POO) en Groovy. Aprenderemos cómo definir clases y crear objetos, así como los principios básicos que rigen la POO.
Conceptos Clave
- Clase: Una plantilla o blueprint que define las propiedades y comportamientos (métodos) de los objetos.
- Objeto: Una instancia de una clase. Representa una entidad con estado y comportamiento.
- Atributos: Variables que representan el estado de un objeto.
- Métodos: Funciones que definen el comportamiento de un objeto.
Definición de Clases
En Groovy, una clase se define utilizando la palabra clave class. Aquí hay un ejemplo básico:
class Persona {
String nombre
int edad
void mostrarInfo() {
println "Nombre: $nombre, Edad: $edad"
}
}Explicación del Código
class Persona: Define una nueva clase llamadaPersona.String nombre: Declara un atributonombrede tipoString.int edad: Declara un atributoedadde tipoint.void mostrarInfo(): Declara un métodomostrarInfoque imprime la información de la persona.
Creación de Objetos
Para crear un objeto de una clase, utilizamos la palabra clave new seguida del nombre de la clase:
Explicación del Código
def persona1 = new Persona(): Crea una nueva instancia de la clasePersonay la asigna a la variablepersona1.persona1.nombre = "Juan": Asigna el valor "Juan" al atributonombredel objetopersona1.persona1.edad = 30: Asigna el valor 30 al atributoedaddel objetopersona1.persona1.mostrarInfo(): Llama al métodomostrarInfodel objetopersona1, que imprime la información de la persona.
Constructores
Un constructor es un método especial que se llama cuando se crea un objeto. En Groovy, podemos definir constructores personalizados:
class Persona {
String nombre
int edad
Persona(String nombre, int edad) {
this.nombre = nombre
this.edad = edad
}
void mostrarInfo() {
println "Nombre: $nombre, Edad: $edad"
}
}
def persona2 = new Persona("Ana", 25)
persona2.mostrarInfo()Explicación del Código
Persona(String nombre, int edad): Define un constructor que toma dos parámetros,nombreyedad.this.nombre = nombre: Asigna el valor del parámetronombreal atributonombredel objeto.this.edad = edad: Asigna el valor del parámetroedadal atributoedaddel objeto.def persona2 = new Persona("Ana", 25): Crea una nueva instancia dePersonautilizando el constructor personalizado.
Ejercicio Práctico
Ejercicio 1
Define una clase Coche con los siguientes atributos y métodos:
- Atributos:
marca(String)modelo(String)año(int)
- Métodos:
mostrarInfo(): Imprime la información del coche.
Crea un objeto de la clase Coche y llama al método mostrarInfo.
Solución
class Coche {
String marca
String modelo
int año
void mostrarInfo() {
println "Marca: $marca, Modelo: $modelo, Año: $año"
}
}
def coche1 = new Coche()
coche1.marca = "Toyota"
coche1.modelo = "Corolla"
coche1.año = 2020
coche1.mostrarInfo()Ejercicio 2
Modifica la clase Coche para incluir un constructor que inicialice los atributos marca, modelo y año. Luego, crea un objeto utilizando este constructor y llama al método mostrarInfo.
Solución
class Coche {
String marca
String modelo
int año
Coche(String marca, String modelo, int año) {
this.marca = marca
this.modelo = modelo
this.año = año
}
void mostrarInfo() {
println "Marca: $marca, Modelo: $modelo, Año: $año"
}
}
def coche2 = new Coche("Honda", "Civic", 2018)
coche2.mostrarInfo()Conclusión
En esta sección, hemos aprendido los conceptos básicos de clases y objetos en Groovy. Hemos visto cómo definir clases, crear objetos y utilizar constructores para inicializar los atributos de un objeto. Estos fundamentos son esenciales para avanzar en la Programación Orientada a Objetos y nos preparan para temas más avanzados como la herencia y el polimorfismo.
En el próximo tema, exploraremos la herencia en Groovy, que nos permitirá crear nuevas clases basadas en clases existentes, promoviendo la reutilización del código y la organización jerárquica.
Curso de Programación Groovy
Módulo 1: Introducción a Groovy
Módulo 2: Sintaxis de Groovy y Características del Lenguaje
Módulo 3: Programación Orientada a Objetos en Groovy
Módulo 4: Características Avanzadas de Groovy
Módulo 5: Groovy en la Práctica
- Entrada/Salida de Archivos
- Trabajando con XML y JSON
- Acceso a Bases de Datos
- Desarrollo Web con Groovy
Módulo 6: Pruebas y Depuración
Módulo 7: Ecosistema y Herramientas de Groovy
- Herramienta de Construcción Gradle
- Framework de Pruebas Spock
- Framework Grails
- Otras Bibliotecas y Herramientas de Groovy
Módulo 8: Mejores Prácticas y Temas Avanzados
- Estilo de Código y Convenciones
- Optimización del Rendimiento
- Consideraciones de Seguridad
- Concurrencia en Groovy
