În această lecție, vom explora conceptele de bază ale programării orientate pe obiect (OOP). Vom discuta despre ce înseamnă OOP, ce sunt clasele și obiectele, precum și despre atribute și metode.
Ce este OOP?
Programarea orientată pe obiect (OOP) este un paradigma de programare care se bazează pe ideea de a organiza codul în „obiecte”, care reprezintă entități din lumea reală sau abstracte. Aceste obiecte conțin atribute (date) și metode (comportamente) care definesc starea și acțiunile lor. OOP facilitează o organizare clară și modulară a codului, promovează reutilizarea și încurajează o abordare mai naturală și intuitivă a rezolvării problemelor.
Clase și obiecte
În OOP, o clasă este o structură care definește o categorie sau un tip de obiect. O clasă descrie atributele și metodele pe care obiectele de acest tip le vor avea. Un obiect este o instanță a unei clase, un exemplu specific al acelei clase. Fiecare obiect are propriile sale valori pentru atributele definite de clasă și poate accesa metodele clasei.
Iată un exemplu simplu în Python:
class Animal:
def __init__(self, nume, varsta):
self.nume = nume
self.varsta = varsta
def descriere(self):
return f"{self.nume} are {self.varsta} ani."
animal1 = Animal("Rex", 5)
animal2 = Animal("Fifi", 3)
print(animal1.descriere()) # Output: Rex are 5 ani.
print(animal2.descriere()) # Output: Fifi are 3 ani.
În acest exemplu, am definit o clasă Animal cu două atribute (nume, varsta) și o metodă (descriere()). Apoi am creat două obiecte (instanțe) ale clasei Animal: animal1 și animal2. Fiecare obiect are propriile sale valori pentru atribute și poate accesa metoda descriere() a clasei.
Atribute și metode
Atribute
Atributele sunt variabile asociate cu un obiect și reprezintă starea sau datele acestuia. În exemplul de mai sus, nume și varsta sunt atribute ale clasei Animal. Putem accesa atributele unui obiect folosind notația cu punct (.):
print(animal1.nume) # Output: Rex
print(animal2.varsta) # Output: 3
Metode
Metodele sunt funcții asociate cu o clasă și reprezintă comportamentele sau acțiunile pe care obiectele de acea clasă le pot efectua. Metodele sunt definite în interiorul unei clase, iar primul argument al fiecărei metode este de obicei self, care reprezintă instanța obiectului ce apelează metoda. În exemplul de mai sus, descriere() este o metodă a clasei Animal.
print(animal1.descriere()) # Output: Rex are 5 ani.
Metoda __init__()
Metoda specială __init__() este cunoscută drept constructorul clasei și este apelată automat atunci când se creează o nouă instanță a clasei. Constructorul este utilizat pentru a inițializa atributele obiectului și a seta starea inițială a acestuia. În exemplul de mai sus, constructorul clasei Animal primește doi parametri (nume și varsta) și inițializează atributele self.nume și self.varsta ale obiectului.
def __init__(self, nume, varsta):
self.nume = nume
self.varsta = varsta
În concluzie, programarea orientată pe obiect (OOP) este un paradigma de programare care ajută la organizarea și structurarea codului într-un mod mai eficient și intuitiv. Conceptele principale ale OOP sunt clasele, obiectele, atributele și metodele. Prin înțelegerea acestor concepte și aplicarea lor în dezvoltarea software-ului, poți crea programe mai robuste, scalabile și ușor de întreținut.