LECȚIA 15
|
PAG. 1 / 2
|
Acasă >>>
Lecții online

Mai mult despre obiecte
Așadar, o clasă este un „șablon” (model, tipar, matriță) pentru crearea de obiecte, adică un set de instrucțiuni care definesc ce caracteristici (atribute) și ce comportamente (metode) va avea un anumit tip de obiect. Ea nu este un obiect în sine, ci doar o descriere a modului în care astfel de obiecte vor arăta și se vor comporta.Un obiect este o instanță concretă a unei clase – adică o entitate creată efectiv în memorie, pe baza acelui șablon. Poți avea o singură clasă Masina, dar zeci de obiecte diferite (Tesla, BMW, Dacia) care sunt toate instanțe ale acestei clase, fiecare cu valorile sale proprii.
Așa cum am văzut, în Python, clasele se definesc cu ajutorul cuvântului cheie class, urmat de numele clasei (care, prin convenție, începe cu literă mare) și două puncte :. Corpul clasei conține metodele și, opțional, atributele implicite.
Să analizăm codul de mai jos, pas cu pas: • class Masina: – definește o clasă numită Masina;
• def __init__(self, marca, culoare): – este constructorul; acesta se apelează automat la crearea unui obiect;
• self.marca = marca – inițializează atributele obiectului cu valorile date la instanțiere;
• def descrie(self): – aceasta este o metodă care afișează descrierea obiectului curent.
Mai jos am creat două obiecte (instanțierea):
masina1 = Masina("Dacia", "albastru")
masina2 = Masina("Toyota", "negru")
Fiecare obiect este independent și stochează propriile valori:
masina1.descrie() # Masina este o Dacia albastră.
masina2.descrie() # Masina este un Toyota neagră.
Extinderea exemplului
De acum, putem adăuga mai multe metode pentru a evidenția comportamentele mașinii:
class Masina:
def __init__(self, marca, viteza):
self.marca = marca
self.viteza = viteza
self.pornita = False
def porneste(self):
self.pornita = True
print(f"{self.marca} a fost pornită.")
def accelereaza(self):
if self.pornita:
print(f"{self.marca} accelerează cu viteza de {self.viteza} km/h.")
else:
print(f"{self.marca} nu poate accelera deoarece este oprită.")
def opreste(self):
self.pornita = False
print(f"{self.marca} a fost oprită.")
masina = Masina("Ford", 100)
masina.accelereaza() # Mașina nu poate accelera
masina.porneste() # Pornim mașina
masina.accelereaza() # Acum poate accelera
masina.opreste() # Oprim mașina
Astfel, clasa Masina reflectă un obiect din lumea reală: are o stare internă (viteza, pornita) și comportament (metodele).
Concluzie. Obiectele oferă o modalitate naturală de a structura programe mai mari și mai complexe.
Avansează la pagina următoare.

home | list LECȚII | perm_identity | arrow_upward |