All Flashcards
Objekt v OOP
Autonomní a výpočetně úplná entina.
Každý objekt má identitu, která je nezávislá na atributech
Je to základní jednotka modularity a struktury objektově orientovaného programu
Abstrakce
Schopnost programu zjednodušit některé aspekty informací či vlastností objektů
Vytváření abstrakce - Skrývání detailů do černé skříňky (blackbox), pro okolí je definována jen svým protokolem
Míra abstrakce - určuje jak moc se rozhraní černé skříňky přibližuje realitě
Zapouzdření
Uzavření vůči okolní objektům
Přístup jen přes veřejný protokol (message lookup)
Zasílání zprávy - obsahuje š informace. Jméno zprávy, skrytý self parameter, parametry methody
Protokol rozhodne o reakci na zprávu
Invokace (metody v daném objektu, nebo některém z jeho rodičů)
Chyba - vyhodí se výjimka, objekt nerozumí zprávě
Pokud posílá objekt zprávu sám sobě, komunikuje přes interní protokol
Zasíání zprávy
Protokol příjemce rozhodne o reakci na zprávu
Přístup k atributu (čtení nebo zápis)
Invokace odpovídající metody a vracení výsledku
Chyba - nerozumí zprávě.
Polymorfismus
Stejnou zprávu lze zaslat jiným objektům.
Každý objekt má možnost individuální rekace (invokace různých metod)
Určení reakce na zprávu
Statická - určí se při překladu programu (Při nepolymorfních funkcích je toto možné)
Dynamická - určí až za běhu pomocí (VMT) (která vzniká za překladu). Při polymorfních metodách u statických, dynamické jazyky používají pouze VMT
Dědičnost
Umožňuje sdílet stejné chování. Zlepšuje znovupoužitelnost kódu. Možnost specializovat objekt (kočka -> Majska myvali)\
Do specializovaného objektu lze přidat nové položky a modfikovat jeho metoydy
Vytváření nových objektů
Vytvořit prázdný objekt a naplnit ho daty
Kopie(klonování) + úprava položek (Prototyp - kloovaný objekt)