Jak sama nazwa wskazuje, programowanie obiektowe lub OOP odnosi się do języków, które używają obiektów w programowaniu. Programowanie obiektowe ma na celu wdrożenie w programowaniu jednostek ze świata rzeczywistego, takich jak dziedziczenie, ukrywanie, polimorfizm itp. Głównym celem OOP jest powiązanie danych i funkcji, które na nich operują, tak aby żadna inna część kodu nie mogła uzyskać dostępu do tych danych poza tą funkcją.
Koncepcje OOP:
- Klasa
- Obiekty
- Abstrakcja danych
- Kapsułkowanie
- Dziedzictwo
- Wielopostaciowość
- Wiązanie dynamiczne
- Przekazywanie wiadomości
1. Klasa:
Klasa to typ danych zdefiniowany przez użytkownika. Składa się z elementów danych i funkcji składowych, do których można uzyskać dostęp i z których można korzystać, tworząc instancję tej klasy. Reprezentuje zestaw właściwości lub metod wspólnych dla wszystkich obiektów jednego typu. Klasa jest jak plan obiektu.
but wiosenny
Na przykład: Weź pod uwagę klasę samochodów. Może być wiele samochodów o różnych nazwach i markach, ale wszystkie będą miały pewne wspólne właściwości, np. wszystkie będą miały 4 koła, ograniczenie prędkości, zasięg itp. Zatem tutaj samochód to klasa, a koła, ograniczenia prędkości, przebieg to ich właściwości.
2. Przedmiot:
Jest to podstawowa jednostka programowania obiektowego i reprezentuje byty z życia codziennego. Obiekt jest instancją klasy. Kiedy klasa jest zdefiniowana, nie jest przydzielana żadna pamięć, ale podczas jej tworzenia (tj. tworzenia obiektu) pamięć jest przydzielana. Obiekt ma tożsamość, stan i zachowanie. Każdy obiekt zawiera dane i kod umożliwiający manipulowanie danymi. Obiekty mogą wchodzić w interakcje bez konieczności znajomości szczegółów wzajemnych danych lub kodu, wystarczy znać typ akceptowanego komunikatu i typ odpowiedzi zwracanej przez obiekty.
Na przykład pies jest prawdziwym obiektem, który ma pewne cechy, takie jak kolor, rasa, szczekanie, sen i jedzenie.

Obiekt
3. Abstrakcja danych:
Abstrakcja danych jest jedną z najważniejszych i najważniejszych cech programowania obiektowego. Abstrakcja danych oznacza dostarczanie światu zewnętrznemu jedynie niezbędnych informacji o danych, ukrywanie szczegółów tła lub implementacji. Rozważmy przykład z życia wzięty, przedstawiający mężczyznę prowadzącego samochód. Człowiek wie tylko, że naciśnięcie pedału przyspieszenia zwiększy prędkość samochodu lub zaciągnięcie hamulca zatrzyma samochód, ale nie wie, jak po naciśnięciu pedału przyspieszenia prędkość wzrasta, nie wie o wewnętrznym mechanizmie samochodu lub wykonanie pedału gazu, hamulców itp. w samochodzie. To jest właśnie abstrakcja.
4. Hermetyzacja:
Java konwertuje ciąg na int
Hermetyzację definiuje się jako pakowanie danych w pojedynczą jednostkę. Jest to mechanizm, który łączy kod i dane, którymi manipuluje. W Encapsulation zmienne lub dane klasy są ukryte przed jakąkolwiek inną klasą i można uzyskać do nich dostęp tylko poprzez dowolną funkcję członkowską ich klasy, w której są zadeklarowane. Podobnie jak w przypadku enkapsulacji, dane w klasie są ukryte przed innymi klasami, dlatego jest to również znane jako ukrywanie danych .

Rozważmy rzeczywisty przykład enkapsulacji: w firmie istnieją różne sekcje, takie jak sekcja księgowości, sekcja finansów, sekcja sprzedaży itp. Sekcja finansów obsługuje wszystkie transakcje finansowe i prowadzi rejestr wszystkich danych związanych z finansami. Podobnie dział sprzedaży zajmuje się wszystkimi działaniami związanymi ze sprzedażą i prowadzi ewidencję całej sprzedaży. Teraz może zaistnieć sytuacja, gdy z jakiegoś powodu urzędnik z działu finansowego będzie potrzebował wszystkich danych o sprzedaży w danym miesiącu. W takim wypadku nie ma on bezpośredniego dostępu do danych działu sprzedażowego. Najpierw będzie musiał skontaktować się z innym pracownikiem działu sprzedaży, a następnie poprosić go o podanie konkretnych danych. Na tym właśnie polega enkapsulacja. Tutaj dane sekcji sprzedaży i pracowników, którzy mogą nimi manipulować, są opakowane w pojedynczą sekcję sprzedaży.
5. Dziedziczenie:
Dziedziczenie jest ważnym filarem OOP (programowanie obiektowe). Zdolność klasy do wyprowadzania właściwości i charakterystyk z innej klasy nazywa się dziedziczeniem. Pisząc klasę, dziedziczymy właściwości innych klas. Kiedy więc tworzymy klasę, nie musimy ciągle wpisywać wszystkich właściwości i funkcji, ponieważ można je odziedziczyć od innej klasy, która je posiada. Dziedziczenie pozwala użytkownikowi na ponowne użycie kodu, gdy tylko jest to możliwe, i zmniejszenie jego redundancji.
monitor kineskopowy

6. Polimorfizm:
Słowo polimorfizm oznacza posiadanie wielu form. W prostych słowach możemy zdefiniować polimorfizm jako zdolność komunikatu do wyświetlania w więcej niż jednej formie. Na przykład osoba w tym samym czasie może mieć różne cechy. Jak mężczyzna jest jednocześnie ojcem, mężem, pracownikiem. Zatem ta sama osoba zachowuje się inaczej w różnych sytuacjach. Nazywa się to polimorfizmem.

7. Wiązanie dynamiczne:
W przypadku wiązania dynamicznego kod, który ma zostać wykonany w odpowiedzi na wywołanie funkcji, jest ustalany w czasie wykonywania. Wiązanie dynamiczne oznacza, że kod powiązany z danym wywołaniem procedury nie jest znany aż do momentu wywołania w czasie wykonywania. Dynamiczne wiązanie metod Jedną z głównych zalet dziedziczenia jest to, że pewna klasa pochodna D ma wszystkich członków swojej klasy bazowej B. Gdy D nie ukrywa żadnego z publicznych członków B, wówczas obiekt D może reprezentować B w dowolnym kontekście gdzie można zastosować literę B. Ta cecha jest znana jako polimorfizm podtypu.
8. Przekazywanie wiadomości:
Jest to forma komunikacji stosowana w programowaniu obiektowym i programowaniu równoległym. Obiekty komunikują się ze sobą poprzez wysyłanie i odbieranie informacji. Komunikat dla obiektu jest żądaniem wykonania procedury i dlatego wywołuje w obiekcie odbierającym funkcję, która generuje pożądane wyniki. Przekazywanie wiadomości polega na określeniu nazwy obiektu, nazwy funkcji i informacji, które mają zostać wysłane.
Dlaczego potrzebujemy programowania obiektowego
- Aby rozwój i utrzymanie projektów było łatwiejsze.
- Aby zapewnić funkcję ukrywania danych, która jest dobra ze względów bezpieczeństwa.
- Możemy rozwiązywać problemy świata rzeczywistego, jeśli używamy programowania obiektowego.
- Zapewnia możliwość ponownego wykorzystania kodu.
- Pozwala nam pisać ogólny kod, który będzie działał z szerokim zakresem danych, więc nie musimy w kółko pisać podstawowych rzeczy.