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 atributonombre
de tipoString
.int edad
: Declara un atributoedad
de tipoint
.void mostrarInfo()
: Declara un métodomostrarInfo
que 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 clasePersona
y la asigna a la variablepersona1
.persona1.nombre = "Juan"
: Asigna el valor "Juan" al atributonombre
del objetopersona1
.persona1.edad = 30
: Asigna el valor 30 al atributoedad
del objetopersona1
.persona1.mostrarInfo()
: Llama al métodomostrarInfo
del 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,nombre
yedad
.this.nombre = nombre
: Asigna el valor del parámetronombre
al atributonombre
del objeto.this.edad = edad
: Asigna el valor del parámetroedad
al atributoedad
del objeto.def persona2 = new Persona("Ana", 25)
: Crea una nueva instancia dePersona
utilizando 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