Istnieją pewne inne różnice, które można wyjaśnić za pomocą tabeli porównawczej.
Wykres porównania
Podstawa Dla porównania | MUZYKA POP | OOP |
---|---|---|
Podstawowy | Procedura / struktura zorientowana. | Obiekt zorientowany. |
Podejście | Z góry na dół. | Od dołu. |
Podstawa | Główny nacisk kładzie się na "jak wykonać zadanie", tj. Na temat procedury lub struktury programu. | Główny nacisk położony jest na "bezpieczeństwo danych". Dlatego tylko obiekty mają dostęp do jednostek klasy. |
Podział | Duży program jest podzielony na jednostki zwane funkcjami. | Cały program jest podzielony na obiekty. |
Tryb dostępu do encji | Nie zaobserwowano specyfikatora dostępu. | Specyfikator dostępu to "public", "private", "protected". |
Przeciążenie / polimorfizm | Ani nie przeciążają funkcji ani operatorów. | Przeciąża funkcje, konstruktory i operatory. |
Dziedzictwo | Ich nie ma przepisu na dziedziczenie. | Dziedziczenie osiągnięte w trzech trybach publicznych, prywatnych i chronionych. |
Ukrywanie i bezpieczeństwo danych | Nie ma właściwego sposobu ukrywania danych, więc dane są niepewne | Dane są ukryte w trzech trybach publicznych, prywatnych i chronionych. w związku z tym zwiększa się bezpieczeństwo danych. |
Udostępnianie danych | Dane globalne są dzielone między funkcje w programie. | Dane są udostępniane między obiektami za pośrednictwem funkcji składowych. |
Funkcje / klasy znajomych | Brak koncepcji funkcji znajomego. | Klasy lub funkcja może stać się przyjacielem innej klasy ze słowem kluczowym "przyjaciel". Uwaga: słowo kluczowe "przyjaciel" jest używane tylko w języku c ++ |
Wirtualne klasy / funkcja | Brak koncepcji wirtualnych klas. | Pojęcie funkcji wirtualnej pojawia się podczas dziedziczenia. |
Przykład | C, VB, FORTRAN, Pascal | C ++, JAVA, VB.NET, C # .NET. |
Definicja programowania obiektowego (OOP)
Główną troską OOP jest ukrywanie danych z nieczłonkowskich funkcji klasy, które traktuje jak "informacje krytyczne". Dane są ściśle powiązane z funkcjami członkowskimi klasy, która na niej działa. Nie zezwala na to, aby jakakolwiek funkcja nie będąca członkiem zmieniła dane wewnątrz niej. Obiekty komunikują się ze sobą za pośrednictwem funkcji składowych, aby uzyskać dostęp do ich danych.
OOP opracowano na podstawie podstawowej koncepcji "obiektu", "klas", "enkapsulacji danych lub abstrakcji", "dziedziczenia" i "polimorfizmu / przeciążenia". W OOP programy można podzielić na moduły, dzieląc dane i funkcje, które następnie można wykorzystać jako szablony do tworzenia nowych kopii modułów, jeśli jest to wymagane.
Definicja programowania zorientowanego na procedury (POP)
POP jest konwencjonalnym sposobem programowania. Programowanie proceduralne polega na tym, że głównym zadaniem jest wykonanie zadania w porządku sekwencyjnym. Schemat blokowy organizuje przepływ kontroli nad programem. Jeśli program jest duży, ma strukturę małych jednostek zwanych funkcjami, które współdzielą dane globalne. Tutaj pojawia się problem bezpieczeństwa danych, ponieważ istnieje niezamierzona zmiana w programie według funkcji.
Kluczowe różnice między OOP i POP
- POP jest programowaniem zorientowanym na procedury, podczas gdy OOP jest programowaniem obiektowym.
- Głównym celem POP jest "jak wykonać zadanie", zgodnie z diagramem przepływu, aby wykonać zadanie. Głównym celem OOP jest bezpieczeństwo danych, ponieważ tylko obiekty danej klasy mają dostęp do atrybutów lub funkcji klasy.
- Funkcje te są małymi jednostkami dużych programów, które wykonują, aby wykonać główne zadanie. W atrybutach OOP i funkcjach klasy są dzielone między obiekty.
- W protokole POP nie ma określonego trybu dostępu, aby uzyskać dostęp do atrybutów lub funkcji w programie, podczas gdy w OOP istnieją trzy tryby dostępu "publiczny", "prywatny", "chroniony", które są używane jako dostępowy udział w celu uzyskania dostępu do atrybutów lub funkcji .
- POP nie wspiera koncepcji przeciążania / polimorfizmu. OOP obsługuje Overloading / Polymorphism a, co oznacza używanie tej samej nazwy funkcji do wykonywania różnych funkcji. Możemy przeciążyć funkcje, konstruktory i operatory w OOP.
- Nie ma koncepcji dziedziczenia w POP, podczas gdy OOP wspiera dziedziczenie, które pozwala na używanie atrybutu i funkcji innej klasy przez dziedziczenie jej.
- POP jest mniej bezpieczny w porównaniu do OOP, ponieważ w OOP specyfikator dostępu ogranicza dostęp do atrybutów lub funkcji, które zwiększają bezpieczeństwo.
- W protokole POP, jeśli niektóre dane mają być współużytkowane przez wszystkie funkcje w programie, deklarowane są globalnie poza wszystkimi funkcjami. W OOP dane elementu klasy można uzyskać poprzez funkcje członkowskie klasy.
- W POP nie ma pojęcia funkcji przyjaciela, podczas gdy w OOP istnieje pojęcie funkcji przyjaciela, która nie jest członkiem klasy, ale ponieważ jest członkiem przyjaciół, może uzyskać dostęp do elementu danych i funkcji członka klasy.
- Nie ma koncepcji klas wirtualnych w POP, podczas gdy w OOP funkcje wirtualne wspierają polimorfizm.
Wniosek
Wady POP powodują potrzebę OOP. OOP koryguje wady POP, wprowadzając pojęcie "obiektu" i "klas". Zwiększa bezpieczeństwo danych oraz automatyczne inicjowanie i czyszczenie obiektów. OOP umożliwia tworzenie wielu wystąpień obiektu bez żadnych zakłóceń.