Koncepcje OOP i przykłady, które powinien znać każdy programista

Opublikowany: 2021-02-26

W tym artykule omówimy podstawowe pojęcia związane z programowaniem obiektowym i omówimy powszechnie używane terminy: abstrakcja, enkapsulacja, dziedziczenie i polimorfizm.

Po pierwsze, OOP to metodologia programowania, która wymaga od programistów tworzenia obiektów i używania ich w całym programie w ramach funkcji, które wymagają takich obiektów do działania. Powodem, dla którego koncepcja obiektów OOP jest szeroko stosowana w Javie, jest to, że umożliwia ona ponowne wykorzystanie kodu przy jednoczesnym zachowaniu bezpieczeństwa.

Zanim porozmawiamy o czterech filarach programowania obiektowego, zapoznajmy się z ogólnymi terminami, które często słyszymy podczas używania któregokolwiek z języków obiektowych: Java, python, c++.

Spis treści

Klasa

Klasa to zbiór obiektów, który definiuje zestaw właściwości, które są wspólne dla wszystkich obiektów określonego typu. Można go również nazwać planem tworzenia obiektów. Klasa obejmuje następujące składniki:

Nazwa klasy: nazwa nadana klasie zaczynająca się od dużego alfabetu.

Modyfikatory: W zależności od funkcjonalności modyfikatorów klasy mogą być publiczne, prywatne lub domyślne.

Body : treść klasy zawiera wszystkie kody obiektów obecnych w klasie. Może to obejmować deklarowanie dowolnych zmiennych lub tworzenie dowolnego konstruktora lub metod, które zawierają działanie obiektu.

Obiekt

Obiekt jest zdefiniowany jako instancja klasy i zawiera rzeczywiste jednostki. Na przykład dla klasy o nazwie Zwierzęta jej obiektami będą kot, pies, słoń i in. Każdy przedmiot ma swoją tożsamość, atrybut i zachowanie. Poniższy kod przedstawia użycie klasy, obiektu i metody podczas programowania w języku java.

Metody

Metody są zdefiniowane w ramach klasy i służą do wykonywania określonej funkcji. Metoda może zawierać parametr wejściowy lub nie. Poniższy kod przedstawia użycie klasy, obiektu i metody podczas programowania w języku java.

W powyższym kodzie Player to nazwa nadana naszej klasie, natomiast runs to parametr przekazywany w metodzie Batsman, który zwraca zdobyte przez niego runy przy wywołaniu przez obiekt o nazwie myobj.

Modyfikatory dostępu

Modyfikatory dostępu w Javie definiują dostępność lub zakres metody, konstruktora lub klasy. Cztery typy modyfikatorów dostępu to:

  1. Publiczny : kod napisany w klasie jest dostępny dla innych klas.
  2. Private : napisany kod jest dostępny tylko w ramach tej konkretnej klasy.
  3. Domyślnie : napisany kod jest dostępny w tym samym pakiecie.
  4. Protected : kod jest dostępny w pakiecie, a także poprzez podklasę. W przypadku braku klasy podrzędnej nie można uzyskać dostępu do kodu.

Przejdźmy teraz do sedna programowania obiektowego.

Dziedzictwo

Termin dziedziczenie odnosi się do dziedziczenia właściwości jednej klasy do drugiej. Właściwości odnoszą się do atrybutów i metod klasy nadrzędnej. Klasa nadrzędna to ta klasa, której właściwości muszą być dziedziczone przez inne klasy. Klasy, które dziedziczą właściwości klasy nadrzędnej, nazywane są klasą lub podklasą potomną. Aby dziedziczyć właściwości klasy nadrzędnej do klasy potomnej, używane jest słowo kluczowe o nazwie extends .

W powyższym przykładzie Sponsor jest klasą nadrzędną, a jej atrybutem jest właściciel. Stworzyliśmy podklasę o nazwie Team, która dziedziczy klasę rodzicielską – Sponsora. Stworzyliśmy obiekt Team, który ma dostęp do właściwości klasy nadrzędnej. Dane wyjściowe powyższego kodu to:

Wielopostaciowość

Jak sama nazwa wskazuje- Polimorfizm to zdolność zmiennej lub funkcji do istnienia w wielu formach. Polimorfizm umożliwia programiście wykonywanie różnych zadań przy użyciu tej samej zmiennej lub funkcji. Przykładem polimorfizmu z życia może być otwarty teren, teraz teren ten może być wykorzystany do uprawiania sportu.

Poza tym mógł służyć również do organizowania wesel i koncertów. Wreszcie, ten sam teren może być używany do parkowania pojazdów. Z tego możemy wywnioskować, że pojedyncza zmienna może mieć wiele implementacji w zależności od jej użycia.

Polimorfizm, z którym zwykle spotykamy się, to dwa terminy, a mianowicie : Przeciążanie metody i Przeciążanie metody .

W Method Overloading , pojedyncza metoda może być używana na wiele sposobów i wykonywać różne funkcje. Metody będą miały tę samą nazwę, ale jako dane wejściowe można użyć różnych parametrów.

W Method Overriding metoda klasy nadrzędnej może zostać zastąpiona przez klasę podrzędną. Dzięki temu ta sama metoda może działać inaczej, gdy jest wywoływana przez klasę nadrzędną i przez klasę podrzędną.

Przykład polimorfizmu pokazano poniżej:

W tym przykładzie tą samą metodą możemy wykonać wiele zadań. Ta sama metoda, głos, gdy jest używany w Bird, wyprowadza „Turr Turr”, a gdy jest używany z Duck, wyprowadza „Quack Quack”. Migawka danych wyjściowych jest pokazana poniżej:

Abstrakcja

Abstrakcja to proces ukrywania pewnych danych przed użytkownikami i pokazywania im tylko wymaganych informacji. Na przykład, prowadząc samochód, nie przejmujemy się wewnętrznymi funkcjami czy mechanizmami. Pokazano nam prędkość, z jaką jedzie samochód i dostępne litry benzyny. Wszystkie inne marginalizowane dane nie są wyświetlane kierowcy.

Słowo kluczowe abstract jest używane dla metod i klas podczas wykonywania abstrakcji. W przypadku klasy abstrakcyjnej nie możemy utworzyć obiektu, podczas gdy metoda abstrakcyjna nie powinna zawierać treści. Jeśli którakolwiek z dwóch reguł zostanie naruszona, dane wyjściowe wygenerują błąd.

Tutaj stworzyliśmy obiekt podklasy Duck, który jest dziedziczony z klasy głównej Bird. Dane wyjściowe pokazano poniżej:

Kapsułkowanie

Enkapsulacja to proces łączenia kodu i danych w jedną całość. W tym przypadku zmienne klasy są ukryte przed innymi klasami (za pomocą słowa kluczowego private ), ale można uzyskać do nich dostęp tylko za pomocą funkcji członkowskiej. Funkcje ustawiające i pobierające są używane do uzyskiwania dostępu do prywatnych zmiennych klasy, która jest abstrakcyjna.

Do tej pory omówiliśmy wszystko, co jest związane z programowaniem obiektowym w Javie. Zanim zakończymy, przyjrzyjmy się niektórym zaletom koncepcji OOP.

  1. Kod można łatwo ponownie wykorzystać, dzięki czemu oszczędza się dużo czasu i kosztów opracowywania kodów.
  2. Pomaga w zaprojektowaniu kodu w dobrze ustrukturyzowany sposób, tak aby każdy nowy programista nie musiał spędzać długich godzin na zrozumieniu kodu.
  3. Oprócz pomagania użytkownikom w efektywnym pisaniu kodu zapewnia, że ​​bezpieczeństwo nie zostanie naruszone.

Kasa: Pytania i odpowiedzi dotyczące wywiadu OOP

Ucz się kursów oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Podsumowując, w tym blogu omówiliśmy podstawowe koncepcje OOP. Koncepcje te są szeroko stosowane w przemyśle i innych zastosowaniach. Aby stać się biegłym programistą, należy dobrze znać te pojęcia. W nadchodzących blogach odkryjemy kilka innych podstawowych koncepcji programistycznych, które pomogą Ci rozwinąć wiedzę w tej dziedzinie.

Jeśli chcesz dowiedzieć się więcej o tworzeniu oprogramowania z pełnym pakietem, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie tworzenia oprogramowania z pełnym pakietem, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.]

Czym jest silnia?

Silnia to działanie matematyczne, które oblicza iloczyn podanej liczby i wszystkich liczb poniżej niej. Silnia to iloczyn, który wskazuje, ile razy liczba jest pomnożona przez jeden. Na przykład silnia 5 to 5x4x3x2x1, co jest równe 120. Silnia 1 to 1, a silnia 0 również 1. Program do znajdowania silni liczby jest najczęściej zadawanym pytaniem podczas rozmowy kwalifikacyjnej i jest czymś to powinno znajdować się na czubkach twojej dłoni.

Jak napisać program rekurencji czynnikowej?

Silnia liczby n jest zdefiniowana jako n! = 1 × 2 × 3 × 4 × … × n. Silnia 5 to 120. Silnia jest zdefiniowana jako silnia(5) = 120. Funkcja rekurencyjna to funkcja, która wywołuje samą siebie. To jest przykład funkcji silni w stylu rekurencyjnym silnia(n) = n * silnia(n - 1). Napisanie programu rekurencji czynnikowej jest bardzo proste, a kod jest bardzo podobny do wersji iteracyjnej. Aby napisać wersję iteracyjną, używamy zmiennej o nazwie n i zwiększamy ją o jeden, a następnie mnożymy ją przez zmienną o nazwie prod, która śledzi kolejne wartości n. Wartość wyjściowa jest również przechowywana w zmiennej o nazwie prod. W wersji rekurencyjnej nadal używasz zmiennej o nazwie n. Jednak nie potrzebujesz zmiennej do przechowywania wartości prod i możesz bezpośrednio zwrócić prod z funkcji.

Czym jest rekurencja w programowaniu?

Słowo rekurencja pochodzi od łacińskiego słowa recurrere, które oznacza powrót. W większości języków programowania funkcja, która sama się wywołuje, nazywa się rekurencją. Ten proces zapętlania trwa do momentu osiągnięcia przypadku podstawowego, który nie jest zdefiniowany w żadnej funkcji rekurencyjnej. Rekurencja to skuteczna technika rozwiązywania problemu w uporządkowany i zorganizowany sposób. To dobra strategia programistyczna. Na przykład problem szeregu Fibonacciego, problem czynnikowy itp. można rozwiązać zarówno w sposób iteracyjny, jak i rekurencyjny.