Python 3
Machine Learning

PENTRU ELEVII DE LICEU

LECȚIA 15
PAG. 1 / 2
OOP - Clase și obiecte
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:
Editor - exemplu_oop.py
       
Rezultatul în consolă done
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