Wyjaśnienie pojęć OOPS dla początkujących
Opublikowany: 2022-12-20Rolą programów komputerowych jest pomyślne modelowanie złożonych wymagań świata rzeczywistego w instrukcje zrozumiałe dla komputera. Aby to osiągnąć, kilka paradygmatów programowania działa na różnych filozofiach. Obejmują one programowanie funkcyjne, programowanie proceduralne, programowanie obiektowe i inne. Te paradygmaty różnią się w zależności od tego, jak działają, a zatem są niezależne od języka.
W tym artykule przyjrzymy się bliżej programowaniu obiektowemu. Zanim przejdziemy do złożoności OOPS, oto kilka kluczowych koncepcji OOP w Javie, o których powinieneś pamiętać, ponieważ są to cztery filary, na których działa OOPS:
- Abstrakcja
- Kapsułkowanie
- Dziedzictwo
- Wielopostaciowość
Szczegółowo omówimy te koncepcje obiektowych obiektów obiektowych w dalszej części tego artykułu. Ale najpierw zrozummy, czym dokładnie jest programowanie obiektowe.
Spis treści
Czym jest programowanie obiektowe?
Przed programowaniem zorientowanym obiektowo programowanie funkcyjne było dominującym paradygmatem programowania. Języki takie jak C i COBOL były zgodne z tym paradygmatem, więc programy napisane w tych językach były serią instrukcji. Używały one podprogramów lub procedur, aby kody źródłowe były modułowe i bardziej czytelne. Paradygmat programowania funkcjonalnego koncentrował się bardziej na logice niż na danych, a program łączyłby zarówno dane, jak i program.
Języki programowania, takie jak C++, C#, Java i inne, przeszły na podejście programowania zorientowanego obiektowo po tym, jak C. OOP nadał priorytet danym, nadpisując proste instrukcje oparte na logice. Zasadniczo obiektem jest wszystko, co chcesz modelować w swoim programie. To może być wszystko i nic. Jeśli w tej chwili brzmi to niejasno, zostań do końca, a zrozumiesz dokładnie, co przez to rozumiemy!
Czym są klasy i obiekty?
Programowanie obiektowe działa z klasami i obiektami. Dlatego ważne jest, aby zrozumieć, co oznaczają te dwa terminy i czym się od siebie różnią. Mówiąc najprościej, pomyśl o klasach jako o planie, który pomaga tworzyć obiekty wtedy, gdy ich potrzebujesz.

Rolą klas jest definiowanie różnych atrybutów i różnych zachowań. Tak więc, gdybyśmy mieli modelować pojazd w naszym programie, stworzylibyśmy klasę dla pojazdu i zachowalibyśmy atrybuty, takie jak liczba kół, kolor, model, wiek i tak dalej; podczas gdy zachowania byłyby takie jak ruszanie, przyspieszanie, hamowanie i tak dalej. Jak widać, zdefiniowane przez nas atrybuty i zachowanie nie są specyficzne dla jednego pojazdu. Zasadniczo obejmują one różne zachowania i atrybuty różnych pojazdów. W ten sposób, gdy chcesz utworzyć instancję nowego obiektu pojazdu, możesz określić atrybuty dla danego pojazdu. W ten sposób Klasy działają jak doskonały plan tworzenia nowych obiektów o tych samych atrybutach i zachowaniach.
Oto jak będzie wyglądał nasz pojazd klasowy oraz jego różne atrybuty i zachowania. Pamiętaj, że do napisania kodu użyliśmy składni Javy, ale paradygmat programowania jest neutralny językowo.
pojazd klasy publicznej{
prywatny ciąg znaków _kolor;
prywatny int _model;
prywatny ciąg _makeYear;
prywatny ciąg znaków _fuelType;
publiczne unieważnienie start(){ }
public void przyspiesz() {}
publiczne nieważne stop() {}
}
Wykorzystując zdefiniowaną klasę możemy tworzyć różne obiekty o różnych atrybutach przy zachowaniu wspólnych zachowań. Na przykład:
|
|
W ten sposób Zajęcia z programowania obiektowego mogą pomóc uprościć modelowanie złożonych zachowań i systemów w świecie rzeczywistym. Wszystkie dane, atrybuty i funkcje są powiązane z obiektem dowolnej klasy. W ten sposób wyeliminowana jest konieczność przechowywania jakichkolwiek danych globalnych. Jest to istotna różnica między podejściem programowania proceduralnego i programowania obiektowego.
Po ustaleniu podstaw przyjrzyjmy się dogłębnie czterem filarom programowania obiektowego:
Zdobądź certyfikat data science od najlepszych uniwersytetów na świecie. Naucz się programów Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Abstrakcja
Abstrakcja polega na skupieniu się na tym, co jest zrobione, zamiast na tym, jak zadanie jest wykonywane. Cała idea abstrakcji polega na pomocy w budowaniu niezależnych modułów, które mogą wchodzić w interakcje ze sobą bez konieczności polegania na sobie nawzajem. W ten sposób konserwacja programu również staje się łatwiejsza i łatwiejsza w zarządzaniu. W przypadku abstrakcji OOP próbują reprezentować tylko podstawowe funkcje bez wchodzenia w sposób ich implementacji lub działania elementów wewnętrznych systemu.
Ideą jednej z najważniejszych koncepcji OOPS w Pythonie jest to, że programiści muszą skupić się tylko na rzeczach, które mają bezpośrednie znaczenie dla bieżącego modułu. Modyfikowanie jednego modułu nie powinno bezpośrednio wpływać na inne niezależne moduły. Programista potrzebuje jedynie wiedzy na temat aktualnego modułu i tego, co on daje. Nie trzeba zbytnio rozumieć działania modułu w tle, aby osiągnąć to, co jest wymagane; w związku z tym informacje te są wyodrębniane w celu uzyskania najlepszych wyników.
Jeśli weźmiesz ideę abstrakcji poza programowanie, zdasz sobie sprawę, że w istocie abstrakcja jest wszędzie. Przedmioty, z którymi mamy do czynienia na co dzień, są nam wyabstrahowane na różnych poziomach. Na przykład nie wiemy, jak działają elementy wewnętrzne naszego hamulca samochodowego, ale dostaliśmy pedał do hamowania, jednocześnie abstrahując od mechanizmu za zasłonami. W ten sposób nie musisz się martwić, jak to działa; wystarczy nacisnąć pedał.
Kapsułkowanie
Koncepcja enkapsulacji jest ściśle związana z poprzednią koncepcją abstrakcji. Hermetyzacja polega zasadniczo na zapewnieniu rozwiązania problemu bez wymagania od użytkownika końcowego pełnego zrozumienia domeny problemu. W tym celu enkapsulacja łączy wszystkie dane i zachowania w jedną całość. W ten sposób użytkownik końcowy nie może wiedzieć o wewnętrznych elementach wszędzie tam, gdzie zaimplementowana jest abstrakcja.
Użytkownik nie może uzyskać bezpośredniego dostępu do danych i korzysta z udostępnionych funkcji, aby uzyskać dostęp do danych w razie potrzeby. Ukrywając elementy wewnętrzne obiektu, paradygmat programowania OOPS chroni integralność modułów i nie pozwala użytkownikom ustawić danych wewnętrznych w niespójny stan. Jeśli nie zostanie to zrobione, może to spowodować wiele problemów na dłuższą metę. W ten sposób enkapsulacja polega bardziej na ujawnianiu złożoności w sposób odporny na awarie, a mniej na całkowitym ukrywaniu złożoności.
Dziedzictwo
Dziedziczenie to kolejna potężna cecha paradygmatu programowania obiektowego. Rolą dziedziczenia jest wydajne i szybkie organizowanie i organizowanie klas w hierarchię, aby umożliwić tym klasom dziedziczenie zachowania i atrybutów z klas znajdujących się wyżej w hierarchii. Zasadniczo dziedziczenie można rozumieć jako „jest związkiem”, co jest bardzo podobne do tego, jak mówimy o rzeczach w prawdziwym świecie.
Na przykład mówimy, że „papuga to ptak”. Oznacza to, że papuga jest obiektem ptaka klasowego, a więc dziedziczy pewne cechy i zachowania z szerszej klasy. Jednak nie będzie to poprawne, jeśli powiemy, że bank to konto bankowe. Tak działa hierarchia w dziedziczeniu, która pozwala definiować zachowania i implementacje, które można później specjalizować w wyspecjalizowanych klasach. Pamiętaj, że dziedziczenie nie działa wstecz. Tak więc klasa nadrzędna nigdy nie odziedziczy niczego po klasie podrzędnej. Jednak klasy potomne dziedziczą zarówno atrybuty, jak i zachowania z klas nadrzędnych, w zależności od charakteru tych atrybutów i zachowań (publiczne lub prywatne). Dziedziczenie to sposób na ponowne wykorzystanie programu i może pomóc w skróceniu całego kodu źródłowego i uczynieniu go bardziej zrozumiałym. Ale musisz pamiętać, że nie powinieneś dodawać poziomów po poziomach dziedziczenia, jeśli nie jest to potrzebne.
Sprawdź nasze amerykańskie programy nauki o danych
Profesjonalny program certyfikacji w zakresie nauki o danych i analityki biznesowej | Magister nauk o danych | Magister nauk o danych | Zaawansowany program certyfikacji w nauce o danych |
Program wykonawczy PG w Data Science | Bootcamp programowania w Pythonie | Profesjonalny program certyfikatów w dziedzinie nauki o danych w podejmowaniu decyzji biznesowych | Zaawansowany program w nauce o danych |


Wielopostaciowość
Polimorfizm jest jedną z wielu ważnych koncepcji OOPS w Pythonie i Javie, która zasadniczo zajmuje się wieloma różnymi możliwymi implementacjami dowolnych jednostek wykonywalnych i wszystkimi subtelnymi różnicami, które zachodzą w tle, bez informowania użytkownika o tych zmianach. Polimorfizm ułatwia bezproblemowe rozszerzanie programów komputerowych o wyspecjalizowane obiekty.
Na przykład, jeśli chcesz napisać kawałek tekstu na papierze – możesz użyć długopisu, markera, kredki, a nawet ołówka. Wszystko, czego potrzebujesz, to coś, co zmieści się w dłoni i pomoże ci tworzyć symbole, gdy dociskasz je do papieru. Tak więc akt pisania pomoże ci wykonać symbole na papierze, a to, jakiego instrumentu potrzebujesz, zależy od twojego wyboru.
W tym sensie dziedziczenie jest sposobem na osiągnięcie przez program polimorfizmu, w którym niestandardowa implementacja metody nadpisuje zachowanie zdefiniowane w dziedziczonej klasie. Ten proces jest również znany jako polimorfizm w czasie wykonywania lub zastępowanie metod. Istnieje inna forma polimorfizmu, znana również jako przeciążanie metod. W tym przypadku dziedziczenie w ogóle nie wchodzi w grę. W przypadku przeciążania metod nazwa metody pozostaje taka sama, podczas gdy argumenty w metodzie różnią się w zależności od tego, jakie zadanie ma zostać wykonane.
Podsumowując
Na tym kończymy naszą dyskusję na temat koncepcji OOPS w Javie . Rzeczy omówione do tej pory stworzyły wszystkie podstawy potrzebne do rozpoczęcia programowania obiektowego bez martwienia się o nic. Musisz wdrożyć dyskusję i wypróbować rzeczy w praktyce; w końcu programowanie polega na ćwiczeniu i wytrwałości.
Znajomość OOPS pomoże Ci również w Twojej podróży do nauki o danych, ponieważ będziesz używać języków takich jak Python, który opiera się na paradygmacie OOPS. Data Science to dynamicznie rozwijająca się dziedzina, w której nie brakuje możliwości dla osób z odpowiednimi umiejętnościami i wiedzą. Sprawdź nasze studia magisterskie z Data Science autorstwa upGrad, we współpracy z University of Arizona, i uzyskaj szansę uczenia się od ekspertów branżowych wraz z silną siecią absolwentów, którzy pomogą ci w całej karierze.
Jakie są cztery koncepcje OOPS?
Cztery podstawowe koncepcje OOPS to abstrakcja, enkapsulacja, dziedziczenie i polimorfizm.
Czym różnią się klasy i obiekty?
Klasy to plany zjawisk, które mają być modelowane. Z drugiej strony obiekty to określone instancje klas, które zapożyczają zachowanie i atrybuty od klasy, z której zostały utworzone.
W jakim języku działa OOPS?
OOPS to filozofia programowania, która jest neutralna językowo. Możesz pracować na OOPS przy użyciu dowolnego współczesnego języka programowania, takiego jak C++, Java, Python, Ruby itp.