Základy objektového programování - třídy, objekty zasílání zpráv
Jan 15, 20252 min read
Objektově orientované programování (OOP) je programovací paradigma, které využívá objekty a třídy k organizaci a struktuře kódu.
Základy OOP zahrnují třídy, objekty a zasílání zpráv mezi objekty.
Třídy
Třída je šablona pro vytváření objektů.
Definuje atributy (data) a metody (funkce), které objekty mohou mít.
V Pythonu se třída definuje pomocí klíčového slova class.
definice třídy a její metody
class Person: # Konstruktor def __init__(self, name, age): self.name = name self.age = age # Metoda def greet(self): print(f"Hello, my name is {self.name}. I am {self.age}y. old.")
Objekt:
Objekt je konkrétní instance třídy.
Vytváří se pomocí konstruktoru třídy (typicky metody __init__()).
Každý objekt má své vlastní atributy a může volat metody třídy.
Vytvoření objektu a zavolání metody greet
person1 = Person("Alice", 30)person1.greet() # Výstup: Hello, my name is Alice and I am 30 years old.
Zasílání zpráv:
Zasílání zpráv (messaging) je základním konceptem v objektově orientovaném programování (OOP) a označuje proces volání metod objektů.
Zde je zjednodušený popis toho, jak probíhá zasílání zpráv v OOP:
Identifikace objektu:
Prvním krokem je identifikace objektu, kterému chceme poslat zprávu.
Objekty jsou instance tříd obsahující data (atributy) a funkce (metody).
Volání metody:
Poté, co je objekt identifikován, můžeme na něj “poslat zprávu” voláním jeho metody.
To znamená vykonání určité akce nebo manipulaci s daty uvnitř objektu.
Zpracování metody:
Když je metoda volána, objekt přijme zprávu a provede kód přiřazený k dané metodě.
To může zahrnovat manipulaci s atributy objektu nebo provádění dalších akcí.
Výsledek:
Po provedení kódu v metodě může být vrácen výsledek operace (pokud je to vhodné) nebo může být provedena jiná akce v souladu s logikou aplikace.
zasílání zpráv
uvažujme třídu Car, která má metodu drive()
class Car: def __init__(self, brand, model): self.brand = brand self.model = model def drive(self): print(f"{self.brand} {self.model} is driving.")
pokud vytvoříme instanci této třídy a zavoláme její metodu drive(), proces zasílání zpráv proběhne následovně:
my_car = Car("Toyota", "Corolla")my_car.drive()
Identifikace objektu: my_car je identifikován jako instance třídy Car.
Volání metody: Voláme metodu drive() na objektu my_car.
Zpracování metody: Objekt my_car přijímá zprávu a provádí kód v metodě drive(), tedy vypíše zprávu o tom, že auto jede.
Výsledek: Výstup bude “Toyota Corolla is driving.”.