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 veritableExplicació del Codi
- Paquet:
package Animal;defineix un nou paquet anomenatAnimal, que serà la nostra classe. - Constructor:
sub newés el constructor de la classe. Utilitzablessper associar una referència hash amb la classe. - Atributs:
nameisoundsón atributs de la classe. - Mètodes:
get_nameiget_soundsón mètodes que retornen els valors dels atributsnameisound, 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: BarkExplicació del Codi
- Creació d'Objecte:
my $dog = Animal->new("Dog", "Bark");crea un nou objecte de la classeAnimal. - Ús de Mètodes:
get_nameiget_sounds'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 queDoghereti 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
Catque hereti deAnimal. - Afegeix un mètode
meowque 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_soundimeow.
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
