Programowanie obiektowe
Programowanie obiektowe (OOP) to sposób pisania programów komputerowych, który wykorzystuje pojęcie "obiektów" do reprezentowania danych i metod. Zazwyczaj programy komputerowe były tylko listą instrukcji do komputera, mówiących mu, aby robił pewne rzeczy w określony sposób, co jest nazywane programowaniem proceduralnym. Jednak w programowaniu obiektowym programy komputerowe wykorzystują obiekty, które rozmawiają ze sobą i zmieniają dane w tych obiektach, do pracy w sposób, który jest pożądany przez użytkownika. Ponadto, ze względu na sposób, w jaki programowanie obiektowe jest projektowane, pomaga ono programiście poprzez umożliwienie łatwego ponownego użycia kodu przez inne części programu lub nawet przez inne osoby.
Większość języków programowania to mieszanka różnych rodzajów sposobów pisania programów komputerowych. Na przykład, Python pozwala na pisanie programów komputerowych zarówno w programowaniu obiektowym jak i proceduralnym. Istnieje wiele języków programowania, które pozwalają na pisanie programów komputerowych w OOP, Niektóre z tych języków programowania są, na przykład: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, itd.
Cechy charakterystyczne
Główną ideą programowania obiektowego jest to, że wszystko jest obiektem. Obiekt może być jednak różnego rodzaju:
- Zmienne mogą zawierać informacje (lub dane) różnych typów, które są obsługiwane przez język programowania. Przykładem może być typ danych w postaci liczb całkowitych oraz struktura danych listy. Zmienne to pomysł, który jest już dostępny w proceduralnych językach programowania. W programowaniu obiektowym zmienne są znane głównie jako atrybuty.
- Procedury (zwane również funkcjami, metodami lub rutynami) to lista instrukcji nakazujących komputerowi pobranie danych wejściowych, wykonanie pewnych obliczeń lub zmianę danych i zwrócenie ich użytkownikowi. Procedury to również pomysł, który jest już dostępny w językach programowania proceduralnego. W programowaniu obiektowym procedury znane są głównie jako metody.
- Klasy są zbiorem różnych zmiennych i procedur. Klasy zazwyczaj rozmawiają ze sobą w celu dokonania zmian w danych, aby pracować w sposób, jaki chce użytkownik.
Obiekty to termin odnoszący się do instancji klas.
Przykłady
W poniższych przykładach tworzymy klasę o nazwie Człowiek
. Klasa ta zawiera atrybuty nazwa
(dla imienia osoby) i przyjaciel
(dla imienia przyjaciela). Każda z metod w klasie Human
zawiera listę instrukcji, które wykorzystują zarówno atrybuty imienia
jak i przyjaciela.
Python
Ten kod jest w Pythonie.
Jawa
Ten kod jest w języku Java.
Klasa ludzka
Sposób na rozmowę z klasą ludzką powyżej
Krytyka
Choć programowanie obiektowe jest popularne, to jednak jest wiele osób, które uważają, że jest złe i krytykują je.
- Luca Cardelli napisał pracę zatytułowaną "Bad Engineering Properties of Object-Oriented Languages".
- Richard Stallman napisał w 1995 roku: "Dodanie OOP do Emacsa nie jest wyraźnym usprawnieniem; używałem OOP podczas pracy nad systemami okienek Lisp Machine i nie zgadzam się ze zwykłym poglądem, że jest to lepszy sposób programowania".
- Badanie przeprowadzone przez Potoka i wsp. mówi nam, że różnica w wydajności pomiędzy OOP a podejściem proceduralnym jest bardzo niewielka.
- Christopher J. Date powiedział, że porównywanie OOP z innymi rzeczami, zwłaszcza z tym, jak OOP i inne rzeczy są ze sobą powiązane, jest trudne, ponieważ ludzie nie zgadzają się co do znaczenia OOP.
- Aleksander Stepanov zasugerował, że OOP daje punkt widzenia, który jest ograniczony do matematyki, i nazwał go "prawie tak samo jak sztuczna inteligencja".
- Paul Graham, odnoszący sukcesy sprzedawca internetowy i programista, zasugerował, że celem OOP jest działanie jako mechanizm stadny, który powstrzymuje przeciętnych programistów w przeciętnych organizacjach przed "robieniem zbyt dużych szkód". Spowalnia to również szybszych, lepszych programistów, którzy wiedzą jak robić rzeczy w bardziej wydajny i zwarty sposób. [1]
Pytania i odpowiedzi
P: Czym jest programowanie obiektowe?
O: Programowanie zorientowane obiektowo to sposób pisania programów komputerowych przy użyciu "obiektów" oznaczających dane i metody.
P: Czym różni się programowanie obiektowe od programowania proceduralnego?
O: W programowaniu proceduralnym programy komputerowe są listą instrukcji dla komputera, nakazujących mu wykonywanie określonych czynności w określony sposób. W programowaniu obiektowym programy komputerowe używają obiektów, które komunikują się ze sobą, aby zmieniać dane w tych obiektach i działać w sposób pożądany przez użytkownika.
P: W jaki sposób programowanie obiektowe przynosi korzyści deweloperom?
O: Programowanie obiektowe pozwala na łatwe ponowne wykorzystanie kodu w innych częściach programu lub nawet przez inne osoby.
P: Z czego znany jest język programowania Python?
O: Python pozwala na pisanie programów komputerowych zarówno w programowaniu obiektowym, jak i proceduralnym.
P: Czy może Pan podać przykłady języków programowania, które umożliwiają pisanie programów komputerowych w programowaniu obiektowym?
O: Języki programowania, które umożliwiają pisanie programów komputerowych w programowaniu obiektowym obejmują C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C# itp.
P: Czym są obiekty w programowaniu obiektowym?
O: Obiekty to jednostki w programowaniu obiektowym, które zawierają dane i metody.
P: Jak działają obiekty w programowaniu obiektowym?
Obiekty wchodzą ze sobą w interakcje, aby zmieniać dane w tych obiektach i działać w sposób pożądany przez użytkownika.