Zwięzły opis podstawowych pojęć obiektowości. |
---|
Napisane przez Wed 08 Feb 2006 przez Artur (2504 cztane) |
Obiekt pojęcie to w informatyce podobnie jak w realnym świecie wiele znaczy. Dlatego też nie można się spodziewać tu precyzyjnej definicji. Z jednej strony można powiedzieć że jest to konkretny byt który można jednoznacznie zidentyfikować i przyrównać do realnego, materialnego a z drugiej że jest pewną abstrakcją programową stworzoną w celu pożądanej logiki. Jest to pojęcie podstawowe i daje początek racji bytu kolejnym pojęciom. Każdy obiekt w bazie ma typ oraz wewnętrzną i zewnętrzną definicję. Definicja zewnętrzna określa usługi i atrybuty oferowane użytkownikom obiektu(interfejs). Definicja wewnętrzna czyli implementacja zawiera szczegóły niedostępne na zewnątrz. Obiekt może być skojarzony z metodami lub operacjami, które na nim działają, z reguły definiowanych, przechowywanych w ramach jego klasy oraz jego nadklas. Obiekt jest instancją klasy. Obiekty mogą być rekurencyjnie powiązane między sobą związkami semantycznymi. Odwołanie do konkretnego obiektu w systemie jest realizowane przez wysłanie do niego komunikatu. Abstrakcja oznacza koncentracje na istocie obiektu, czyli nad tym czym jest, co robi ale jeszcze przed implementacją. Innymi słowy, na danym etapie przekładamy istotność cech wyżej niż implementacje i zwlekamy tak dopóty nie będziemy pewni o ich poprawności. Tożsamość obiektu jest kolejną cechą odzwierciedlającą rzeczywistość, gdzie każdy obiekt można odróżnić poprzez swoje istnienie. Taki wewnętrzny identyfikator, nadawany automatycznie przez system, umożliwia budowanie referencji do obiektu a także powiązań wskaźnikowych. Hermetyzacja określa zamknięcie pewnego zestawu bytów programistycznych w np. obiekcie, klasie. Hermetyzacja jest realizowana w dwóch podstawowych grupach: ortodoksyjnych gdzie na zewnątrz klasy lub obiektu są widoczne tylko metody i operacje oraz ortogonalna gdzie dowolna własność obiektu może być prywatna lub publiczna. Jedną z zalet jest możliwość dokonywania zmian wewnętrznej reprezentacji obiektów bez konieczności poprawiania aplikacji wykorzystujących te obiekty. Klasa grupuje obiekty mające ten sam zbiór atrybutów i metod. Obiekty klasy są jej instancją. Tu w przypadku obiektowej bazy danych klasa może być dziedziną dowolnego atrybutu. Wyróżnia się tu również pojęcie klasy abstrakcyjnej która tworzy z logicznego punktu widzenia a która nie może mieć bezpośrednich wystąpień obiektów. Typ jako wyrażenie językowe lub pewna struktura semantyczna jest przypisywana do zmiennej, wyrażenia lub innego bytu programistycznego. Definiuje rodzaj wartości, którą przybiera ten byt lub określa cechy zewnętrzne dla procedury, operacji lub metody. Zagnieżdżanie typów jest możliwe gdzie każdy może być paramentom każdego konstruktora. Atrybut podobnie jak metoda jest cechą obiektu. Wartość atrybutu jest także obiektem i może przyjmować pojedynczą wartość lub zbiór wartości. Opisuje bieżący stan obiektu. Wyróżnia się atrybuty proste (który jest typu podstawowego, jak liczba całkowita, słowo, liczba rzeczywista) oraz atrybut złożony który zawiera tzw. kolekcję oraz odwołania do innych obiektów. Wystąpienie atrybutu złożonego w obiekcie przekształca go w tzw. obiekt złożony. Metoda to procedura lub funkcja która operuje wartościami atrybutów obiektu. Wywołuje się je za pomocą komunikatów. Komunikat skierowany do obiektu wywołuje metody z nim skojarzone. Hierarchia klas oznacza że klasa podrzędna jest uszczegółowieniem kolasy nadrzędnej a ta z kolei jest uogólnieniem czyli generalizacją klasy podrzędnej. Podrzędna klasa dziedziczy wszystkie atrybuty i metody klasy nadrzędnej bez przeszkody na lokalnie występujące atrybuty i metody. Polimorfizm jest pojęciem określającym możliwość zastosowania tej samej metody do różnych klas. Dziedziczenie wykorzystuje się do definiowania tzw. podklasy która podlega innej - bardziej ogólnej tzw. nadklasie. Standardowo podklasa dziedziczy wszystkie własności nadklasy a w dodatku można jej zdefiniować własne metody i atrybuty. Przesłanianie można określić jako pewne uzupełnienie właściwości dziedziczenie, gdzie podklasy dziedziczą własności nadklas. To pojęcie daje nam możliwości przedefiniowania własności odziedziczonych w podklasie. Przeciążanie pozwala na różne interpretowanie oraz działanie obiektu po dostaniu komunikatu, który skierowany jest do metody o nazwie występującej w wielu klasach. Innymi słowy, jeden komunikat przyczynia się do różnych efektów w zależności od obiektu który go odbiera. |
Indeks :: Drukuj :: E-mail |
Komentarze są własnością ich autorów. Nie ponosimy odpowiedzialności za ich treść.