Objekt vs. instance
Objektově orientované programování (OOP) je jedním z nejpopulárnějších paradigmat programování. V OOP se zaměřuje na přemýšlení o problému, který má být vyřešen, z hlediska prvků reálného světa a reprezentaci problému z hlediska objektů a jejich chování. Mnoho programovacích jazyků, které podporují klíčové aspekty OOP (nazývané jazyky OOP), má třídu jako hlavní programovací nástroj. Říká se jim třídní. Třídy jsou abstraktní reprezentací objektů reálného světa. Třídy mají vlastnosti zvané atributy. Atributy jsou implementovány jako globální proměnné a proměnné instance. Metody ve třídách představují nebo definují chování těchto tříd. Metody a atributy tříd se nazývají členové třídy. Zjednodušeně řečeno, třída je plán nebo šablona pro konkrétní objekt v reálném životě. Tak,objekt je paměťový blok (bloky) používaný k ukládání potřebných informací podle tohoto plánu. Instance je blok paměti, který odkazuje na objekt.
Co je to objekt?
Objekty jsou výsledky vytvoření instance třídy. Instance je proces převzetí podrobného plánu a definování každého atributu a chování tak, aby výsledný objekt ve skutečnosti představoval skutečný objekt. Objekt je vyhrazený a souvislý blok paměti přidělený k ukládání informací, jako jsou proměnné, metody nebo funkce atd. Objekt je vytvořen pomocí nového operátoru v programovacím jazyce Java. Například pokud existuje třída s názvem Car, lze k vytvoření objektu třídy Car použít následující.
nové auto ();
Zde je objekt Car vytvořen novým operátorem a je vrácen odkaz na objekt. K vytvoření nového objektu se používá nový operátor spolu s konstruktorem třídy Car. Životnost objektu začíná od volání jeho konstruktoru do doby jeho zničení. Jakmile objekt nebude odkázán, bude odstraněn / zničen sběratelem odpadků.
Co je instance?
Instance je blok paměti, který obsahuje odkaz na objekt. Jinými slovy, instance uchová adresu počátečního paměťového bloku, kde je objekt uložen. Ve skutečnosti lze název instance použít pro přístup na začátek oblasti paměti objektu. Ofsety z počáteční paměti vypočítává modul runtime, takže můžeme přejít na místo, kde jsou uložena jednotlivá data nebo odkazy na metody. Následující fragment kódu Java lze použít k vytvoření instance objektu Car.
Car myCar = nové auto ();
Jak již bylo uvedeno výše, nový operátor vytvoří Car objekt a vrátí k němu odkaz. Tato reference je uložena v proměnné typu Car myCar. MyCar je tedy instance vytvořeného objektu Car.
Jaký je rozdíl mezi objektem a instancí?
Objekt je souvislý blok paměti, který ukládá skutečné informace, které odlišují tento objekt od ostatních objektů, zatímco instance je odkazem na objekt. Jedná se o blok paměti, který ukazuje na počáteční adresu místa, kde je objekt uložen. Dvě instance mohou odkazovat na stejný objekt. Životnost objektu a instance nesouvisí. Proto by instance mohla mít hodnotu null. Jakmile budou odstraněny všechny instance ukazující na objekt, bude objekt zničen.