Programowanie obiektowe: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
jm100%
Linia 8:
 
=== Obiekty i klasy ===
Jak pisze Junade Ali w Mastering PHP Design Patterns:jm100%<blockquote>„Programowanie obiektowe to więcej niż klasy i obiekty; to cały paradygmat programowania bazujący na obiektach (strukturach danych), które zawierają obszary danych (pola) oraz metody. Zrozumienie tego jest bardzo ważne; używanie klas do zorganizowania zbioru niezwiązanych ze sobą metod nie jest podejściem obiektowym.”<ref>W oryginale: “Object-oriented programming is more than just classes and objects; it’s a whole programming paradigm based around objects (data structures) that contain data fields and methods. It is essential to understand this; using classes to organize a bunch of unrelated methods together is not object orientation.” {{Cytuj |autor = Ali, Junade |tytuł = Mastering PHP Design Patterns |data = 2016}}</ref></blockquote>
Języki, które wspierają programowanie obiektowe zwykle używają dziedziczenia dla ponownego użycia kodu oraz rozciągliwości w formie klas lub prototypów. Te, które używają klas opierają się na dwóch głównych konceptach:
 
* Klasy – definicje formatu danych oraz dostępnych procedur dla danego typu lub klasy obiektu, mogą same także zawierać dane oraz procedury (znane jako metody klas), na przykład, klasy zawierają dane oraz metody.
* Obiekty – [[Instancja (programowanie)|instancje]] klas.
 
Obiekty czasem odpowiadają rzeczom występującym w realnym świecie. Dla przykładu, program graficzny może zawierać obiekty takie jak ''koło'', ''kwadrat'', ''menu''. System sklepu internetowego może zawierać obiekty typu ''koszyk'', ''klient'' czy ''produkt''<ref>{{Cytuj |autor = Booch, Grady |tytuł = Software Engineering with Ada |data = 1986}}</ref>. Czasem obiekty reprezentują bardziej abstrakcyjne jednostki, takie jak obiekt reprezentujący otwarty plik lub obiekt, który zapewnia serwerowi konwertującemu jednostki miar z amerykańskich na metryczne.
 
Jak pisze Junade Ali w Mastering PHP Design Patterns:<blockquote>„Programowanie obiektowe to więcej niż klasy i obiekty; to cały paradygmat programowania bazujący na obiektach (strukturach danych), które zawierają obszary danych (pola) oraz metody. Zrozumienie tego jest bardzo ważne; używanie klas do zorganizowania zbioru niezwiązanych ze sobą metod nie jest podejściem obiektowym.”<ref>W oryginale: “Object-oriented programming is more than just classes and objects; it’s a whole programming paradigm based around objects (data structures) that contain data fields and methods. It is essential to understand this; using classes to organize a bunch of unrelated methods together is not object orientation.” {{Cytuj |autor = Ali, Junade |tytuł = Mastering PHP Design Patterns |data = 2016}}</ref></blockquote>
 
Każdy obiekt jest instancją konkretnej klasy; na przykład obiekt, którego obszar nazwy to „Mary”, może być instancją klasy „Pracownicy”. Procedury w programowaniu obiektowym nazywane są metodami, a zmienne obszarami, członkami, atrybutami albo właściwościami. Sprowadza się to do następujących określeń:
Linia 82 ⟶ 75:
** nie: OCaml
* [[Programowanie uogólnione|Typy generyczne (uogólnione)]]:
** tak: C# 2.0, Java 1.5, ObjectPascal (Delphi 2009, FreePascal 2.2), Python
** tak (przez mechanizm szablonów): C++, [[D (język programowania)|D]]
** nie dotyczy: PHP5, JavaScript