Co to jest OOP?
Programowanie obiektowe (OOP) to paradygmat programowania, w którym programy są pisane i budowane wokół obiektów, a nie funkcji lub logiki. W tym przypadku obiekty są zdefiniowane jako pola danych, które mają unikalne atrybuty i zachowanie. Zawierają dane w postaci atrybutów i procedur w postaci metod. Procedury obiektowe mogą uzyskiwać dostęp i modyfikować dane obecne w obiekcie.
Istnieje wiele języków OOP, z których najpopularniejsze są oparte na klasach, w których obiekty będą instancjami klasy. Klasa jest pojemnikiem na dane i procedury, znanym również jako elementy danych i funkcje elementów. Rozważmy przykład obiektu jako samochodu. Samochód ma atrybuty takie jak kolor, nazwa marki, pojemność paliwa itp. I ma metody reprezentujące zachowanie samochodu, takie jak start, przyspieszenie, przerwa itp. Klasa jest schematem atrybutów i metod i nie zajmuje miejsca, dopóki nie zostanie utworzony obiekt dla tej klasy.
Przykład :
class car
(
char name(20); // name and colour are attributes
char colour(20);
public void start()() //start is a method
);
void main()
(
car c1; //c1 is an object
)
Obiektowe cele programowania do zaimplementowania w programowaniu, byty świata rzeczywistego, takie jak dziedziczenie, polimorfizm, enkapsulacja itp., Które zobaczymy szczegółowo. Głównym celem OOP jest zbiorowe powiązanie danych i działających na nich funkcji, tak aby dane te były dostępne tylko dla tej funkcji.
Zasady OOP
Cztery główne zasady programowania obiektowego to enkapsulacja, abstrakcja, dziedziczenie i polimorfizm.
1. Kapsułkowanie:
Wiązanie danych i metod w jedną jednostkę nazywa się enkapsulacją. Hermetyzacja jest osiągana, gdy każdy obiekt w klasie zachowuje swój stan prywatny. Dane wewnątrz tego urządzenia nie są dostępne dla obiektów zewnętrznych i tylko te funkcje wewnątrz tego urządzenia mogą uzyskać do nich dostęp. Zatem obiekt zarządza swoim stanem za pomocą swoich metod, a do komunikowania się z tym obiektem potrzebujemy pomocy publicznych metod tej klasy.
2. Abstrakcja
Abstrakcja jest rozszerzeniem enkapsulacji. Oznacza to dostarczanie tylko niezbędnych informacji światu zewnętrznemu, przy jednoczesnym ukrywaniu wewnętrznych szczegółów wdrożenia. Ujawnia tylko odpowiednie operacje dla innych obiektów. Zaletą tego jest to, że możemy zmienić implementację bez wpływu na klasę, ponieważ interfejs metody pozostaje taki sam.
Weźmy przykład kalkulatora, który pobiera od nas dane wejściowe i po naciśnięciu przycisku daje nam pożądany wynik, oszczędzając nam wewnętrznych szczegółów, w jaki sposób doszedł do tej odpowiedzi.
3. Dziedziczenie
Często obiekty mają podobną funkcjonalność, dzielą część logiki, ale różnią się w pozostałej części. Jak więc ponownie wykorzystać wspólną logikę i oddzielić inną logikę? Można to osiągnąć przez dziedziczenie. Dziedziczymy, tworzymy nową klasę zwaną klasą potomną, która jest pochodną istniejącej klasy zwanej klasą nadrzędną, tworząc w ten sposób hierarchię klas. Klasa potomna ponownie wykorzystuje pola danych i metody wymagane od klasy nadrzędnej i sama implementuje swoją unikalną funkcjonalność.
Na przykład pojazd może być klasą nadrzędną, z której możemy czerpać klasy podrzędne, takie jak rower i samochód. Dzielą one wspólne właściwości pływania na paliwie i przewożenia pasażerów, ale różnią się liczbą pasażerów, których mogą przewozić i większą liczbą takich właściwości.
4. Polimorfizm
Polimorfizm to zdolność przyjmowania więcej niż jednej formy. Załóżmy, że mamy klasę nadrzędną i kilka jej klas podrzędnych. Teraz chcemy używać atrybutów zarówno z klas nadrzędnych, jak i podrzędnych, więc jak to zostanie osiągnięte? Można to zrobić za pomocą polimorfizmu. W polimorfizmie byty abstrakcyjne są wykonywane na wiele sposobów. Daje to sposób na wykorzystanie klasy dokładnie takiej, jak klasa nadrzędna, dzięki czemu nie ma pomyłek z mieszaniem typów klas, a każda klasa potomna nadal zachowuje swoje metody tak, jak była. Można to zrobić przez ponowne użycie interfejsu nadrzędnego, aby klasa potomna mogła zaimplementować te metody we własnej wersji.
Zalety programowania obiektowego
- Można przedstawić rzeczywisty pomysł, ponieważ wszystko w OOP jest traktowane jak obiekt.
- Ponieważ używamy pojęcia enkapsulacji, programy są łatwiejsze do testowania i konserwacji.
- Szybsze tworzenie kodu odbywa się, ponieważ rozwijamy klasy równolegle zamiast sekwencyjnie.
- OOP zapewnia większe bezpieczeństwo ze względu na abstrakcję danych. Świat zewnętrzny nie może uzyskać dostępu do ukrytych danych.
- Wielokrotnego użytku można osiągnąć za pomocą klas, które zostały już napisane.
Wady programowania obiektowego
- Projektowanie programu z koncepcją OOP może być trudne.
- Programista musi wcześniej zaplanować opracowanie programu w OOP.
- Wielkość programów opracowanych przy użyciu OOP jest większa niż programów opracowanych przy zastosowaniu podejścia proceduralnego.
- Ponieważ programy OOP są większe, czas wykonania tych programów jest również dłuższy.
W jaki sposób znajomość OOP może pomóc w rozwoju kariery?
Wiele popularnych obecnie języków, takich jak Java i Ruby, wykorzystuje koncepcje programowania obiektowego. Języki OOP pomagają w pisaniu oprogramowania dla aplikacji takich jak aplikacje mobilne, internetowe i do gier. W tych dziedzinach są wysokie zarobki, takie jak najlepsze oferty pracy dla programistów, którzy mogą leżeć w tych dziedzinach. Dzięki podstawom OOP łatwo jest przejść do różnych technologii i języków, co poszerza nasze perspektywy kariery. Jedną z wad tego zjawiska jest wiedza specjalistyczna. Zazwyczaj firmy szukają praktycznego doświadczenia w zakresie języków i pojęć związanych z OOP, dlatego zaleca się ćwiczenie w trakcie nauki.
Wniosek
Programowanie obiektowe upraszcza nam proces programowania. Ma wiele wartości, takich jak możliwość ponownego użycia, wydajność i utrzymanie kodu. Choć początkowo może być trudno zrozumieć koncepcje OOP, zapewniam cię, że owoc będzie wart wysiłku. Mam nadzieję, że ten artykuł pomógł ci uprościć te koncepcje!
Polecany artykuł
To był przewodnik po Co to jest OOP? W tym miejscu omówiliśmy pojęcia, definicję i zasady z zaletami i wadami OOP. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -
- Czy Hadoop jest oprogramowaniem typu open source?
- Co to jest dziedziczenie Java?
- Co to jest wielowątkowość w C #?
- Co to są usługi sieciowe ASP.Net?