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