Pierwszymi językami programowania były imperatywne języki lub instrukcje maszynowe (kody). Składały się z kodu binarnego, który różnił się w zależności od komputera. Zbiór możliwych poleceń dla "języków" niskiego poziomu był niewielki, ponieważ każda instrukcja maszyny wykonała określoną akcję (dodanie, skopiowanie słowa maszynowego do rejestru, przejście do kolejnej sekcji kodu). Oczywiście, dla wygody, programiści opracowali zestaw liter analogowych dla tych zespołów maszynowych, a ten sposób komunikowania się z maszyną "żelazo" nazywa się językowym asemblerem.
Asembler
Języki wysokiego poziomu
Programowanie strukturalne
C Programming Language
Programowanie obiektowe (OOP)
Na przykład osoba, samochód, dział to abstrakcja, więc można ją opisać jako klasę. Ivan, biały „Skoda” z numerami nn123 działu operacyjnego - specjalnego przedstawiciele tych abstrakcji, czyli w języku obiektowym podejściu do programowania, to cechy klas danych. Zadaniem programisty jest opisanie abstrakcyjnych i konkretnych obiektów świata realnego w języku OOP. Opis klasy jest zaimplementowany w opisie pól i metod.
Pola
klasy samochodów
{
Marka String = "Hunday" Solaris „;
kolor ciąg = "żółta",
podwójnej prędkości = 0,
/* pozostałej części kodu aplikacji * /
}
kapsułkowania
pola mogą zmieniać wartości w trakcie trwania programu, jeżeli został dostarczony przez programistę. Jeśli autor nie chce pola były dostępne poza klasy, a każda inna aplikacja (użytkownik) może zmienić swoje znaczenie, to obudowuje danych, które udostępnia je za pomocą słów kluczowych prywatne, Jeśli na tej samej wysokości powinna być dostępna w ciągu programu, przed ponownym wprowadzeniem publiczny dostęp.
Na przykład, mogą wszystkie klasy pak publicznych
klasy samochodów
, {
Brand ciąg publicznych,
kolor ciąg publicznych,
z podwójną prędkością publicznych,
*
pozostałej części kodu programu
*
}
,
W tym przypadku dostęp do te pola nie będą ograniczone. W interfejsie możesz przypadkowo lub celowo zmienić ważne dane w polach, któredziałać prawidłowo wpływają na cały program
,& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
grupa MainClass
, {
Public void główna ()
, {
samochodu samochód = nowego samochodu ();
car.colour = "Red";
/* reszta kodu aplikacji * /
}
}
,
, aby uniemożliwić przypadkowe zmiany danych, deweloper kapsułkuje je. W przypadku koloru samochodu, zamiast publicznego, musisz pisać jako prywatny. Wtedy zmiana koloru bezpośrednio nie będzie możliwa.
Metody
, - narzędzie pozwala pracować z klasy na krawędziach lub innych danych. Jak wszystkie funkcje w językach programowania proceduralnych, biorą dane i mogą albo zwrócić wynik obliczeń, czy nie powrócić (np wyświetlić coś na konsoli). Na przykład:
klasy samochodów
, {
gatunek ciąg publicznego = "Hunday" Solaris "
Kolor ciąg publicznego =" żółty „,
z podwójną prędkością publicznego = 0;
/* Oto rozwiązania «Napęd», który jest przesyłany Boolean zmienna whatIsTrafficLight (wartości tylko false - światło czerwone lub prawdziwe - zielone światło, możliwe jest, aby jeździć) * /
public void Napęd (bool whatIsTrafficLight )
, {
, gdy (whatIsTrafficLight == prawda),
, {
szybkość = prędkość + 40
}
else
, {
szybkość = 0;
}
}
}
,
w wyniku tego, za pomocą napędu metodzie zmiany klasy prędkości
Związek "urządzenie"., typ scenariusz = " tekst /JavaScript "i kwasu
blockSettings var = {blockID" RA-70350-45 "renderTo" yandex_rtb_R-A-70350-45”asynchroniczny: ! 0}
, jeżeli (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings.statId = 70350,
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings)} ), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex.ru/System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);
Polimorfizm
drugiego "kolumna" Developing podejście obiektowego - polimorfizm. Bjarne Stroustrup, twórca języka C ++, definicja polimorfizm sformułowane w następujący sposób: „Jeden interfejs - wiele wdrożeń.” W skrócie, polimorfizm - okazją do tworzenia klasy abstrakcyjnej, która opisuje ogólny projekt konstrukcji, a od niego stworzony pochodzą klasy implementujące żadnych mechanizmów. Na przykład podczas tworzenia postaci gier wideo, pod względem podejścia obiektowego byłoby logiczne najpierw wdrożyć klasa abstrakcyjna osoby i mają go tworzyć specyficzne klasy Archer, Healer, wojownik i tak dalej.
Albo jeszcze przykład z samochodem. Jeśli działamy na jednym komputerze, z kilkoma polami i metodami, nie musimy ręcznie zmieniać wielu wartości w kodzie. Ale ile takich maszyn może być? Lub na przykład użytkownicy w sieci społecznościowej? Każdy ma imię, nazwisko, stan cywilny, album ze zdjęciami, ogromną liczbę wartości, linki do innych stron, innych użytkowników i tak dalej. A jeśli deweloperzy decydują się dokonać przeprojektowania sieci społecznej, a niektóre ustawienia użytkownika, aby zmodyfikować lub usunąć, a następnie z tym podejściem tam mnóstwo pracy. Rozwiązuje ten problemowy podejście obiektowe. Zajęcia nie są tworzone dla każdego obiektu i oryginalnie zaprojektowany streszczenie klasy, a onklasy spadkobierców. Podobnie jak enkapsulacja, polimorfizm jest drugą najważniejszą zasadą OOP.
Dziedziczenie
Dziedziczenie to kolejna zasada, gdy stosuje się podejście obiektowe. Polega ona na zdolności klasy spadkobierców do korzystania z cech klasy nadrzędnej. Na przykład, jeśli chcemy mieć motocykl w naszej flocie, nie trzeba pisać tych samych właściwości dla nowej klasy. Zamiast tego możesz powiedzieć, że motocykl jest spadkobiercą klasy z samochodu. Wtedy staje się możliwe zastosowanie podobnych pól i metod maszyny w klasie motocykla, na przykład marki, koloru, prędkości. W kodzie dziedziczenia wskazano w następujący sposób:
klasa Motocykl: samochód
{
/* reszta kodu programu * /
}
Pola i metody samochodu macierzystego klasy są dostępne do użytku w klasie Motorcycle. Krótko mówiąc, dziedziczenie jest mechanizmem ponownego użycia kodu i ma na celu wygodne i logicznie kompetentne rozszerzenie programu. Również dziedziczenie pomaga przestrzegać zasady DRY (Nie powtarzaj się). Zgodnie z tą zasadą kod nie powinien mieć powtarzalnych witryn, ponieważ stwarza niepotrzebne obciążenie podczas kompilacji i wykonywania programu. Jeśli w kodzie znajdują się powtarzające się obszary, to należy je zoptymalizować - powtórzyć w osobnych metodach i wykonać w razie potrzeby; stosuje dziedziczenie do logicznie podobnych obiektów, które mają identyczne pola i metody.