Obiekt a instancja
Programowanie obiektowe (OOP) jest jednym z najpopularniejszych paradygmatów programowania. W OOP nacisk kładziony jest na myślenie o problemie do rozwiązania w kategoriach elementów świata rzeczywistego i reprezentowanie problemu w kategoriach obiektów i ich zachowania. Wiele języków programowania obsługujących kluczowe aspekty OOP (zwane językami OOP) ma tę klasę jako główne narzędzie programowania. Nazywa się je klasami. Klasy są abstrakcyjną reprezentacją obiektów świata rzeczywistego. Klasy mają właściwości zwane atrybutami. Atrybuty są implementowane jako zmienne globalne i zmienne instancji. Metody w klasach reprezentują lub definiują zachowanie tych klas. Metody i atrybuty klas nazywane są członkami klasy. Mówiąc najprościej, klasa jest planem lub szablonem dla konkretnego rzeczywistego obiektu. Zatem obiekt to bloki pamięci używane do przechowywania niezbędnych informacji zgodnie z tym planem. Instancja to blok pamięci, który odwołuje się do obiektu.
Co to jest obiekt?
Obiekty są wynikiem tworzenia instancji klasy. Instancja jest procesem pobierania planu i definiowania każdego atrybutu i zachowania, tak aby wynikowy obiekt faktycznie reprezentował obiekt z prawdziwego życia. Obiekt jest dedykowanym i ciągłym blokiem pamięci przeznaczonym do przechowywania informacji, takich jak zmienne, metody lub funkcje itp. Obiekt jest tworzony za pomocą nowego operatora, w języku programowania Java. Na przykład, jeśli istnieje klasa o nazwie Car, wówczas można utworzyć następujące obiekty w klasie Car.
nowe auto();
Tutaj obiekt Car jest tworzony przez nowego operatora i zwracane jest odwołanie do obiektu. Nowy operator wraz z konstruktorem klasy Car służy do tworzenia nowego obiektu. Żywotność obiektu zaczyna się od wezwania do jego konstruktora do momentu jego zniszczenia. Gdy obiekt nie zostanie odwołany, zostanie on usunięty / zniszczony przez moduł wyrzucający elementy bezużyteczne.
Co to jest instancja?
Instancja to blok pamięci, który zawiera odwołanie do obiektu. Innymi słowy, Instancja zachowa adres początkowego bloku pamięci, w którym przechowywany jest obiekt. W rzeczywistości nazwa instancji może służyć do uzyskania dostępu do początku obszaru pamięci obiektu. Przesunięcia z pamięci początkowej są obliczane przez silnik środowiska wykonawczego, dzięki czemu możemy przejść do miejsca, w którym przechowywane są poszczególne dane lub odwołania do metod. Poniższy kod Java można wyciąć, aby utworzyć instancję obiektu Car.
Car myCar = new Car ();
Jak wspomniano powyżej, nowy operator tworzy obiekt Car i zwraca odniesienie do niego. Odwołanie to jest przechowywane w zmiennej myCar typu samochodu. Zatem myCar jest instancją utworzonego obiektu Car.
Jaka jest różnica między obiektem a instancją?
Obiekt to ciągły blok pamięci, który przechowuje rzeczywistą informację, która odróżnia ten obiekt od innych obiektów, podczas gdy instancja jest odniesieniem do obiektu. Jest to blok pamięci, który wskazuje adres początkowy miejsca przechowywania obiektu. Dwie instancje mogą odnosić się do tego samego obiektu. Żywotność obiektu i instancji nie są powiązane. Dlatego instancja może mieć wartość NULL. Po usunięciu wszystkich instancji wskazujących na obiekt obiekt zostanie zniszczony.