Introducció
En aquest tema, explorarem els conceptes fonamentals de la programació orientada a objectes (POO) en Groovy. Aprendrem com definir classes, crear objectes i utilitzar-los en els nostres programes. També veurem com Groovy simplifica alguns aspectes de la POO en comparació amb altres llenguatges com Java.
Conceptes Clau
- Classe: Una plantilla o model que defineix les propietats (atributs) i comportaments (mètodes) dels objectes.
- Objecte: Una instància d'una classe que conté dades i comportaments definits per la classe.
- Atributs: Variables que emmagatzemen l'estat d'un objecte.
- Mètodes: Funcions que defineixen els comportaments d'un objecte.
Definició de Classes
En Groovy, les classes es defineixen de manera similar a Java, però amb algunes simplificacions. Aquí teniu un exemple bàsic:
class Persona {
String nom
int edat
void saludar() {
println "Hola, el meu nom és $nom i tinc $edat anys."
}
}Explicació del Codi
class Persona: Defineix una nova classe anomenadaPersona.String nom: Declara un atributnomde tipusString.int edat: Declara un atributedatde tipusint.void saludar(): Defineix un mètodesaludarque imprimeix un missatge de salutació.
Creació d'Objectes
Per crear un objecte d'una classe, utilitzem el constructor de la classe. Groovy proporciona un constructor per defecte que podem utilitzar directament:
Explicació del Codi
new Persona(): Crea una nova instància de la classePersona.persona.nom = "Joan": Assigna el valor "Joan" a l'atributnomde l'objectepersona.persona.edat = 30: Assigna el valor 30 a l'atributedatde l'objectepersona.persona.saludar(): Crida el mètodesaludarde l'objectepersona.
Constructors Personalitzats
Podem definir constructors personalitzats per inicialitzar els objectes amb valors específics:
class Persona {
String nom
int edat
Persona(String nom, int edat) {
this.nom = nom
this.edat = edat
}
void saludar() {
println "Hola, el meu nom és $nom i tinc $edat anys."
}
}
Persona persona = new Persona("Maria", 25)
persona.saludar()Explicació del Codi
Persona(String nom, int edat): Defineix un constructor que accepta dos paràmetres (nomiedat) i inicialitza els atributs corresponents.this.nom = nom: Assigna el valor del paràmetrenoma l'atributnomde l'objecte.this.edat = edat: Assigna el valor del paràmetreedata l'atributedatde l'objecte.
Exercicis Pràctics
Exercici 1: Definir una Classe
Defineix una classe Cotxe amb els atributs marca (String) i model (String). Afegeix un mètode detalls que imprimeixi la marca i el model del cotxe.
class Cotxe {
String marca
String model
void detalls() {
println "Marca: $marca, Model: $model"
}
}
// Solució
Cotxe cotxe = new Cotxe()
cotxe.marca = "Toyota"
cotxe.model = "Corolla"
cotxe.detalls()Exercici 2: Constructor Personalitzat
Modifica la classe Cotxe per afegir un constructor que inicialitzi els atributs marca i model.
class Cotxe {
String marca
String model
Cotxe(String marca, String model) {
this.marca = marca
this.model = model
}
void detalls() {
println "Marca: $marca, Model: $model"
}
}
// Solució
Cotxe cotxe = new Cotxe("Honda", "Civic")
cotxe.detalls()Errors Comuns i Consells
- Oblidar inicialitzar els atributs: Assegura't d'inicialitzar tots els atributs necessaris en el constructor.
- Utilitzar
thisincorrectament: Recorda quethises refereix a l'objecte actual. Utilitzathis.nomper accedir a l'atributnomde l'objecte.
Conclusió
En aquesta secció, hem après a definir classes i crear objectes en Groovy. Hem vist com utilitzar atributs i mètodes per definir el comportament dels nostres objectes i com inicialitzar-los amb constructors personalitzats. Aquests conceptes són fonamentals per a la programació orientada a objectes i seran la base per a temes més avançats en els següents mòduls.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy
