Objekt (programování)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 14. června 2016; kontroly vyžadují 13 úprav .

Objekt v programování  je entita v digitálním prostoru, která má stav a chování, má pole a metody . Zpravidla se při zvažování objektů zdůrazňuje, že objekty patří do jedné nebo více tříd , které definují chování (jsou modelem ) objektu. Pojmy „ instance třídy “ a „objekt“ se používají zaměnitelně [1] . Analogie: objekt je to, co bylo provedeno podle výkresu, třída je výkres.

Objekt je spolu s konceptem třídy důležitým konceptem v objektově orientovaném přístupu . Objekty mají vlastnosti dědičnosti , zapouzdření a polymorfismu [2] .

Termín objekt v softwaru byl poprvé představen v jazyce Simula a byl použit pro modelování reality [1] .

Související pojmy

Instance  třídy je popis konkrétního objektu v paměti . Třída popisuje pole a metody , které budou k dispozici pro objekt vytvořený podle popisu stanoveného ve třídě. Instance se používají k reprezentaci (modelování) konkrétních entit v reálném světě. Například instancí třídy pračky může být vaše pračka, která má následující vlastnosti: výrobní společnost Vyatka, název modelu Vyatka-automatic , sériové číslo produktu VYAT454647, kapacita 20 litrů. Na rozdíl od názvu třídy začíná název instance obvykle malým písmenem.

Instanciace je vytvoření  instance třídy. Na rozdíl od slova „tvorba“ se nevztahuje na objekt, ale na třídu. To znamená, že říkají: (ve virtuálním prostředí) vytvořte instanci třídy , nebo jinými slovy vytvořte instanci třídy . Šablony pro vytváření používají polymorfní konkretizaci.

Anonymní objekt je objekt ,  který patří do nějaké třídy, ale nemá jméno.

Inicializace ( anglicky  initialization ) - přiřazení počátečních hodnot k polím objektu.

Životnost objektu  je doba od okamžiku vytvoření objektu (stavby) do jeho zničení (zničení).

Praktický přístup

S výjimkou prototypově orientovaných jazyků jako Lua a JavaScript , kde se pojem „třída“ vůbec nepoužívá, jsou ve většině objektově orientovaných programovacích jazyků (jako je Java , C++ nebo C# ) objekty instancemi. nějaké předem definované třídy .

Objekty v takových jazycích jsou vytvářeny pomocí konstruktoru třídy a ničeny buď pomocí destruktoru třídy (například v C++ ), nebo automaticky pomocí garbage collectoru - například v Javě a C# (C# podporuje destruktory, ale nazývají se sběračem odpadu) nebo pomocí interního čítače referencí objektů a zpráv ("dealloc" v Objective-C ). Objekt je uložen jako data všech jeho polí a odkazy na tabulku virtuálních metod a RTTI své třídy. Třída definuje sadu funkcí a servisních informací pro sestavení objektu, včetně požadovaného množství paměti pro uložení objektu.

V Pythonu jsou všechny hodnoty objekty, dokonce i třídy. V tomto jazyce můžete vytvořit třídu, jejíž třídy budou instancemi. Takové třídy se nazývají metatřídy .

Ukázkový kód

Příklad vytvoření nového objektu a práce s ním v programovacím jazyce Java :

// Vytvoří instanci třídy ArrayList s názvem list ArrayList list = new ArrayList (); // Přidání instancí třídy Integer do seznamu objektů seznamu . add ( nové celé číslo ( 1 )); seznam . add ( nové celé číslo ( 2 )); seznam . add ( nové celé číslo ( 3 ));

Předpokládá se, že třída ArrayListjiž byla popsána v kódu programu a její popis obsahuje definici konstruktoru třídy a metody add.

Poznámky

  1. 1 2 Grady Butch. Objektově orientovaná analýza a návrh s příklady aplikací C++, třídami a objekty . Získáno 9. října 2009. Archivováno z originálu 1. prosince 2009.
  2. Chyba poznámky pod čarou ? : Neplatná značka <ref>; defžádný text pro poznámky pod čarou

Literatura

  • Grady Butch. Objektově orientovaná analýza a návrh s ukázkovými aplikacemi v C++. - Binom, 1998. - ISBN 0-8053-5340-2 , ISBN 5-7989-0067-3 , ISBN 5-7940-0017-1 .