Обект срещу екземпляр
Обектно-ориентираното програмиране (ООП) е една от най-популярните парадигми за програмиране. В ООП фокусът е върху мисленето за проблема, който трябва да бъде разрешен по отношение на елементи от реалния свят и представяне на проблема по отношение на обекти и тяхното поведение. Много езици за програмиране, които поддържат ключови аспекти на ООП (наречени ООП езици), имат класа като основен инструмент за програмиране. Те се наричат класови. Класовете са абстрактно представяне на обекти от реалния свят. Класовете имат свойства, наречени атрибути. Атрибутите се изпълняват като глобални и инстанционни променливи. Методите в класовете представляват или дефинират поведението на тези класове. Методите и атрибутите на класовете се наричат членове на класа. С много прости думи, класът е план или шаблон за конкретен обект от реалния живот. И така, обектът е блокът(ите) на паметта, използван(и) за съхраняване на необходимата информация според този план. Инстанцията е блок памет, който препраща към обект.
Какво е обект?
Обектите са резултат от създаване на клас. Инстанцирането е процесът на вземане на чертежа и дефиниране на всеки атрибут и поведение, така че полученият обект действително да представлява обект от реалния живот. Обектът е специален и непрекъснат блок от памет, разпределен за съхраняване на информация като променливи, методи или функции и т.н. Обектът се създава с помощта на нов оператор на езика за програмиране Java. Например, ако има клас, наречен Car, тогава може да се използва следното за създаване на обект от класа Car.
нова кола();
Тук обект Car се създава от новия оператор и се връща препратка към обекта. Операторът new заедно с конструктора на класа Car се използва за създаване на новия обект. Продължителността на живота на обекта започва от извикването на неговия конструктор до момента на унищожаването му. След като даден обект не бъде препратен, той ще бъде премахнат/унищожен от събирача на отпадъци.
Какво е инстанция?
Инстанцията е блок памет, който съдържа препратката към обект. С други думи, Instance ще запази адреса на началния блок памет, където се съхранява обектът. Всъщност името на екземпляра може да се използва за достъп до началото на областта на паметта на обекта. Отместванията от началната памет се изчисляват от механизма за изпълнение, така че да можем да отидем до мястото, където се съхраняват отделните данни или референции на метод. Следният изрязан код на Java може да се използва за създаване на екземпляр на обект Car.
Кола myCar=нова кола();
Както бе споменато по-горе, новият оператор създава обекта Car и връща препратката към него. Тази препратка се съхранява в променливата тип автомобил myCar. И така, myCar е създадения екземпляр на обекта Car.
Каква е разликата между обект и екземпляр?
Обектът е непрекъснат блок от памет, който съхранява действителната информация, която отличава този обект от други обекти, докато екземплярът е препратка към обект. Това е блок от паметта, който сочи към началния адрес на мястото, където се съхранява обектът. Две инстанции могат да се отнасят за един и същ обект. Продължителността на живота на обект и екземпляр не са свързани. Следователно един екземпляр може да бъде нулев. След като всички инстанции, сочещи към обект, бъдат премахнати, обектът ще бъде унищожен.