Introducció
La programació orientada a objectes (POO) és un paradigma de programació que utilitza "objectes" per dissenyar aplicacions i programes. Els objectes poden contenir dades, en forma de camps, sovint coneguts com a atributs; i codi, en forma de procediments, sovint coneguts com a mètodes. Perl suporta la programació orientada a objectes, i en aquest mòdul aprendrem com implementar-la.
Conceptes Clau
- Classes i Objectes: Una classe és un pla per a crear objectes (instàncies de la classe). Els objectes són instàncies de classes.
- Mètodes: Són subrutines definides dins d'una classe que operen sobre objectes de la classe.
- Atributs: Són variables que pertanyen a un objecte.
- Constructors: Són mètodes especials que es criden quan es crea un objecte.
Creació d'una Classe
Definició d'una Classe
En Perl, una classe és simplement un paquet (package). Aquí teniu un exemple bàsic de com definir una classe:
package Animal; # Constructor sub new { my $class = shift; my $self = { name => shift, sound => shift, }; bless $self, $class; return $self; } # Mètode per obtenir el nom sub get_name { my $self = shift; return $self->{name}; } # Mètode per obtenir el so sub get_sound { my $self = shift; return $self->{sound}; } 1; # El paquet ha de retornar un valor veritable
Explicació del Codi
- Paquet:
package Animal;
defineix un nou paquet anomenatAnimal
, que serà la nostra classe. - Constructor:
sub new
és el constructor de la classe. Utilitzabless
per associar una referència hash amb la classe. - Atributs:
name
isound
són atributs de la classe. - Mètodes:
get_name
iget_sound
són mètodes que retornen els valors dels atributsname
isound
, respectivament.
Creació d'Objectes
Per crear un objecte de la classe Animal
, utilitzem el mètode new
:
use Animal; my $dog = Animal->new("Dog", "Bark"); print "Animal: " . $dog->get_name() . "\n"; # Animal: Dog print "Sound: " . $dog->get_sound() . "\n"; # Sound: Bark
Explicació del Codi
- Creació d'Objecte:
my $dog = Animal->new("Dog", "Bark");
crea un nou objecte de la classeAnimal
. - Ús de Mètodes:
get_name
iget_sound
s'utilitzen per obtenir els valors dels atributs de l'objecte.
Herència
La herència permet que una classe (subclasse) hereti els atributs i mètodes d'una altra classe (superclasse).
Exemple d'Herència
Explicació del Codi
- Paquet:
package Dog;
defineix una nova classeDog
. - Herència:
use parent 'Animal';
fa queDog
hereti deAnimal
. - Nou Mètode:
bark
és un mètode específic de la classeDog
.
Ús de la Subclasse
use Dog; my $dog = Dog->new("Dog", "Bark"); print "Animal: " . $dog->get_name() . "\n"; # Animal: Dog print "Sound: " . $dog->get_sound() . "\n"; # Sound: Bark print "Bark: " . $dog->bark() . "\n"; # Bark: Woof!
Exercicis Pràctics
Exercici 1: Crear una Classe Cat
- Defineix una classe
Cat
que hereti deAnimal
. - Afegeix un mètode
meow
que retorni "Meow!".
Solució
Exercici 2: Crear i Utilitzar un Objecte Cat
- Crea un objecte de la classe
Cat
. - Utilitza els mètodes
get_name
,get_sound
imeow
.
Solució
use Cat; my $cat = Cat->new("Cat", "Meow"); print "Animal: " . $cat->get_name() . "\n"; # Animal: Cat print "Sound: " . $cat->get_sound() . "\n"; # Sound: Meow print "Meow: " . $cat->meow() . "\n"; # Meow: Meow!
Resum
En aquest mòdul, hem après els conceptes bàsics de la programació orientada a objectes en Perl, incloent la creació de classes i objectes, l'ús de mètodes i atributs, i la implementació de la herència. Aquests conceptes són fonamentals per escriure codi Perl modular i reutilitzable. En el següent mòdul, explorarem expressions regulars avançades en Perl.
Curs de Programació en Perl
Mòdul 1: Introducció al Perl
Mòdul 2: Programació Bàsica en Perl
Mòdul 3: Treballant amb Dades
Mòdul 4: Programació Intermèdia en Perl
Mòdul 5: Programació Avançada en Perl
- Expressions Regulars Avançades
- Interacció amb Bases de Dades amb DBI
- Programació Web amb Perl
- Multifil