První programovací jazyky byly imperativní jazyky nebo strojní instrukce (kódy). Jednalo se o binární kód, který se lišil v závislosti na stroji. Množina možných akcí pro tyto low-level „jazyků“ byl malý, protože každá instrukce stroje provést nějakou akci (přidávání, kopírování slovu stroj do rejstříku, přechod na další předvolby). Samozřejmě, že pro pohodlí programátorů vyvinula unikátní sadu písmen těchto strojových instrukcí a tak komunikovat se strojem „železa“ s názvem assembleru.
Assembler
jazyky na vysoké úrovni
Strukturální programování
Programovací jazyk C
objektově orientované programování (OOP)
Například člověk, auto, oddělení je abstrakcí, takže ho lze označit jako třídu. Ivan Ivanovich, bílý "Skoda" s číslem nn123 operačním oddělením - to jsou konkrétní představitelé těchto abstrakcí, tedy mluvit objektově orientovaný přístup k programování je předmětem těchto tříd. Úkolem developera je popsat abstraktní a konkrétní objekty reálného světa v jazyce OOP. Popis třídy je implementován v popisu polí a metod.
Pole
třída Car
{
string značku = "Hunday" Solaris „;
řetězec color = "žlutý",
dvojnásobná rychlost = 0
, /* zbytek kódu aplikace * /
}
Zapouzdření
pole mohou změnit jejich hodnoty v průběhu programu, pokud jej programátorem. Pokud autor nechce pole byly k dispozici mimo školu, a jiné aplikace (uživatele) by mohla změnit jejich význam, ‚shrnuje údaje, které z nich dělá dostupné pomocí klíčových slov v soukromí, Pokud ve stejném hřišti by měly být k dispozici v celém programu, předtím dali přístup veřejnosti.
Například můžeme všichni třída hřiště veřejnosti
třída Car
{
veřejné řetězec značky
veřejné řetězec barvy,
veřejné dvojnásobná rychlost,
*
zbytek programového kódu
*
}
V tomto případě je přístup k tato pole nebudou omezena. V rozhraní můžete omylem nebo úmyslně změnit důležité údaje v polích, kterépokračovat ve správné ovlivnit celý program
& lt; script & gt; (adsbygoogle = window.adsbygoogle || []) stisknout ({});
třída MainClass
{
public void Main ()
{
auto = nový vůz ();
car.colour = "červená";
/* zbytek kódu aplikace * /
}
}
, aby se zabránilo nechtěným změnám dat, developer je zapouzdří. V případě barvy auta, místo veřejnosti, musíte psát soukromě. Změna barvy přímo nebude možná.
Způsob
- nástroj, který umožňuje pracovat s třídou okraje nebo s některými dalšími údaji. Stejně jako libovolná funkce v jazycích procedurálního programování, berou data a mohou buď vrátit výsledek výpočtů, nebo nevracet (například něco na konzole zobrazovat). Například:
třída automobil
{
veřejné řetězec značka = "Hunday" Solaris "
veřejné řetězec barva =" žlutá „,
veřejné dvojnásobná rychlost = 0;
/* Zde jsou uvedena řešení «pohon», která se přenáší logické variabilní whatIsTrafficLight (hodnoty pouze falešné - červené světlo, nebo pravda - zelené světlo, je možné jet) * /
public void pohonu (bool whatIsTrafficLight )
{
, pokud (whatIsTrafficLight == true)
{
, rychlost = rychlost + 40,
,}
jiný
{
, rychlost = 0;
}
}
}
v důsledku toho, s použitím metody jednotky změníme rychlost třídy
lt "stroj".; script type = " text /javascript "& gt;
var blockSettings = {blockId:" RA-70350-45 "renderTo" yandex_rtb_R-a-70350 - 45“, asynchronní: ! 0},
, pokud (document.cookie.indexOf ("abmatch =") větší nebo rovno 0) blockSettings.statId = 70350,
! Funkce (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkce () {Ya.Context.AdvManager.render (blockSettings)} ), e = b.getElementsByTagName ("scénář") , d = b.createElement ("scénář"), d.type = "text /javascript", d.src = „//an.yandex.ru/systém /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to, this.document,!" yandexContextAsyncCallbacks „);
polymorfismus
druhé "pilíř" rozvoj objektově orientované přístup - polymorfismus. Bjarne Stroustrup je tvůrce jazyka C ++, definice polymorfismus formuloval takto: „Jeden rozhraní - mnoho implementací.“ Stručně řečeno, polymorfismus je schopnost vytvořit abstraktní třídu, která popisuje celkový návrh struktury a od ní jsou již vytvořeny třídy derivátů, které implementují chybějící mechanismy. Například při vytváření herní charakter, pokud jde o objektově orientovaného přístupu by bylo logické, aby nejprve provést abstraktní class Osoba, a nechat ho vytvořit zvláštní třídy: Archer, léčitel, válečník a tak dále.
Nebo příklad s autem. Pokud pracujeme s jedním strojem, s několika polí a metodami, není nutné, abychom manuálně změnili několik hodnot v kódu. Ale kolik takových strojů může být? Nebo například uživatelé v sociální síti? Každý má jméno, příjmení, rodinný stav, fotoalbum, obrovský počet hodnot, odkazy na jiné stránky, ostatní uživatele a podobně. A pokud se vývojáři sociálních sítí rozhodnou provést redesign a některé uživatelské nastavení mohou být změněny nebo odstraněny, bude s tímto přístupem hodně práce. Řeší tento problém objektově orientovaný přístup. Třídy nejsou vytvořeny pro každý konkrétní objekt, ale z abstraktní třídy a od ní zpočátkudědicové třídy jsou vytvořeny. Jako zapouzdření je polymorfismus druhým nejdůležitějším pravidlem OOP.
Dědictví
Dedičnost je dalším pravidlem při použití objektově orientovaného přístupu. Spočívá v schopnosti třídy dědiců používat funkce mateřské třídy. Pokud například chceme mít motocykl v naší flotile, pak není nutné psát stejné vlastnosti pro novou třídu. Místo toho můžete říci, že motocykl je třída-dědic z auta. Potom je možné použít obdobná pole a metody stroje v třídě motocyklu, například značka, barva, rychlost. V kódu dědičnosti je uvedeno:
třída Motocykl: Auto
{
/* zbytek programového kódu * /
}
Pole a metody vozu třídního rodiče jsou k dispozici pro použití v motocyklu třídy dědic. Stručně řečeno, dědičnost je mechanismus pro opětovné použití kódu a je zaměřen na pohodlné a logicky kompetentní rozšíření programu. Také dědictví pomáhá dodržovat zásadu DRY (Do not repeat yourself). Podle této zásady by kód neměl mít opakující se stránky, neboť při sestavování a provádění programu vytváří zbytečnou zátěž. Pokud v kódu existují opakující se oblasti, je třeba je optimalizovat - opakujte je v samostatných metodách a způsobte je podle potřeby; použijte dědičnost pro logicky podobné objekty, které mají stejné pole a metody.