Głównym celem programowania w C++ jest wprowadzenie koncepcji orientacji obiektowej do języka programowania C.
Programowanie obiektowe to paradygmat obejmujący wiele koncepcji, takich jak dziedziczenie, wiązanie danych, polimorfizm itp.
Paradygmat programowania, w którym wszystko jest reprezentowane jako obiekt, nazywany jest prawdziwie obiektowym językiem programowania. Pogawędka jest uważany za pierwszy prawdziwie obiektowy język programowania.
OOP (system programowania obiektowego)
Obiekt oznacza prawdziwy obiekt słowny, taki jak długopis, krzesło, stół itp. Programowanie obiektowe to metodologia lub paradygmat projektowania programu przy użyciu klas i obiektów. Upraszcza tworzenie i konserwację oprogramowania, dostarczając pewnych koncepcji:
jak zamienić string na int
- Obiekt
- Klasa
- Dziedzictwo
- Wielopostaciowość
- Abstrakcja
- Kapsułkowanie
Obiekt
Dowolny byt, który ma stan i zachowanie, nazywany jest obiektem. Na przykład: krzesło, długopis, stół, klawiatura, rower itp. Może to być fizyczne i logiczne.
Klasa
Kolekcja obiektów nazywa się klasą. Jest to byt logiczny.
Klasa w C++ jest podstawowym elementem prowadzącym do programowania obiektowego. Aby uzyskać dostęp do elementów danych i funkcji składowych typu danych zdefiniowanego przez użytkownika, należy utworzyć instancję klasy. Klasa obiektu pełni rolę jego planu. Weźmy na przykład klasę samochodów. Nawet jeśli dla różnych samochodów mogą być używane różne nazwy i marki, wszystkie one będą miały pewne cechy wspólne, takie jak cztery koła, ograniczenie prędkości, zasięg w milach itp. W tym przypadku klasę samochodu reprezentuje koła, ograniczenia prędkości i przebieg.
Dziedzictwo
Kiedy jeden obiekt przejmuje wszystkie właściwości i zachowania obiektu nadrzędnego tj. znane jako dziedziczenie. Zapewnia możliwość ponownego wykorzystania kodu. Służy do osiągnięcia polimorfizmu w czasie wykonywania.
- Podklasa — podklasa lub klasa pochodna odnosi się do klasy, która otrzymuje właściwości od innej klasy.
- Nadklasa — termin „klasa bazowa” lub „nadklasa” odnosi się do klasy, z której podklasa dziedziczy swoje właściwości.
- Reusability - W rezultacie, gdy chcemy stworzyć nową klasę, ale istniejąca klasa zawiera już część potrzebnego nam kodu, możemy dzięki dziedziczeniu wygenerować naszą nową klasę ze starej klasy. Dzięki temu możemy wykorzystać pola i metody wcześniej istniejącej klasy.
Wielopostaciowość
Gdy jedno zadanie jest wykonywane różnymi sposobami tj. znany jako polimorfizm. Np.: aby przekonać klienta w inny sposób, narysować coś np. kształt lub prostokąt itp.
Różne sytuacje mogą powodować odmienne zachowanie operacji. Rodzaj danych wykorzystywanych w operacji determinuje zachowanie.
Abstrakcja
Ukrywanie wewnętrznych szczegółów i pokazywanie funkcjonalności nazywa się abstrakcją. Abstrakcja danych to proces udostępniania światu zewnętrznemu tylko tych informacji, które są absolutnie niezbędne, przy jednoczesnym ukrywaniu informacji o implementacji lub tle. Na przykład: rozmowa telefoniczna, nie znamy wewnętrznego przetwarzania.
W C++ używamy klasy abstrakcyjnej i interfejsu, aby osiągnąć abstrakcję.
Kapsułkowanie
Wiązanie (lub owijanie) kodu i danych w jedną całość nazywa się enkapsulacją. Na przykład: kapsułka, jest owinięta różnymi lekami.
ulepszona pętla Java
Enkapsulacja jest zazwyczaj rozumiana jako grupowanie powiązanych informacji i danych w jedną całość. Hermetyzacja to proces łączenia danych i funkcji, które z nimi współpracują w programowaniu obiektowym. Spójrz na praktyczną ilustrację enkapsulacji: w firmie istnieją różne działy, w tym dział sprzedaży, dział finansów i dział księgowości. Wszystkie transakcje finansowe są obsługiwane przez sektor finansowy, który prowadzi również rejestr wszystkich danych finansowych. W podobny sposób dział sprzedaży odpowiada za wszystkie zadania związane ze sprzedażą i prowadzi rejestr każdej sprzedaży. Może się teraz zdarzyć scenariusz, w którym z jakiegoś powodu urzędnik finansowy będzie potrzebował wszystkich informacji na temat sprzedaży za konkretny miesiąc. Pod wspólnym pojęciem „sekcja sprzedaży” grupuje się wszystkich pracowników, którzy mogą mieć wpływ na dane sekcji sprzedaży. Abstrakcja lub ukrywanie danych to kolejny efekt uboczny enkapsulacji. W ten sam sposób, w jaki enkapsulacja ukrywa dane. W powyższym przykładzie żaden inny obszar nie ma dostępu do żadnych danych z żadnej sekcji, takich jak sprzedaż, finanse czy księgowość.
Wiązanie dynamiczne — W przypadku wiązania dynamicznego decyzja dotycząca kodu, który zostanie uruchomiony w odpowiedzi na wywołanie funkcji, jest podejmowana w czasie wykonywania. W tym celu C++ obsługuje funkcje wirtualne.
Przewaga OOP nad językiem programowania zorientowanym na procedury
- OOP ułatwia rozwój i konserwację tam, gdzie, podobnie jak w języku programowania zorientowanym na procedury, nie jest łatwo zarządzać, jeśli kod rośnie wraz ze wzrostem rozmiaru projektu.
- OOP zapewniają ukrywanie danych, podczas gdy w języku programowania zorientowanym na procedury dostęp do danych globalnych można uzyskać z dowolnego miejsca.
- OOP zapewniają możliwość znacznie skuteczniejszej symulacji zdarzeń w świecie rzeczywistym. Możemy zapewnić rozwiązanie prawdziwego problemu tekstowego, jeśli używamy języka programowania obiektowego.
Dlaczego potrzebujemy ups w C++?
Wczesne metody programowania miały różne wady, a także słabą wydajność. Podejście to nie mogło skutecznie rozwiązać problemów występujących w świecie rzeczywistym, ponieważ podobnie jak w programowaniu zorientowanym proceduralnie nie można było ponownie wykorzystać kodu w programie, występowały trudności z globalnym dostępem do danych i tak dalej.
Dzięki wykorzystaniu klas i obiektów programowanie obiektowe ułatwia utrzymanie kodu. Ponieważ dziedziczenie pozwala na ponowne wykorzystanie kodu, program jest prostszy, ponieważ nie trzeba wielokrotnie pisać tego samego kodu. Ukrywanie danych zapewniają także pomysły takie jak enkapsulacja i abstrakcja.
ogon Java
Dlaczego C++ jest częściowym oop?
Obiektowe cechy języka C były główną motywacją do budowy języka C++.
Język programowania C++ jest klasyfikowany jako częściowo obiektowy język programowania, mimo że obsługuje koncepcje OOP, w tym klasy, obiekty, dziedziczenie, enkapsulację, abstrakcję i polimorfizm.
1) Funkcja główna musi zawsze znajdować się poza klasą w C++ i jest wymagana. Oznacza to, że możemy obejść się bez klas i obiektów i mieć jedną główną funkcję w aplikacji.
W tym przypadku jest to wyrażane jako obiekt, co stanowi pierwsze naruszenie Pure OOP.
2) Zmienne globalne to cecha języka programowania C++, do której dostęp ma każdy inny obiekt w programie i która jest zdefiniowana poza nim. Hermetyzacja jest tutaj uszkodzona. Mimo że C++ zachęca do enkapsulacji klas i obiektów, ignoruje ją w przypadku zmiennych globalnych.
Przeciążenie
Polimorfizm ma również podzbiór znany jako przeciążenie. Mówi się, że istniejący operator lub funkcja jest przeciążona, gdy jest zmuszona operować na nowym typie danych.
Wniosek
Po przeczytaniu tego kursu na temat koncepcji OOPS w C++ zrozumiesz potrzebę programowania obiektowego, czym są OOP w C++ i podstawy OOP, takie jak polimorfizm, dziedziczenie, enkapsulacja itp. Oprócz przykładów polimorfizmu i dziedziczenia poznałeś także zalety obiektów OOP w C++.