Prvi programski jeziki so bili obvezni jeziki ali strojna navodila (kode). Sestavljali so jih binarna koda, ki se je razlikovala glede na stroj. Niz možnih ukazov za tako nizke "jezike" je bil majhen, saj je vsako strojno navodilo izvedlo določeno dejanje (dodajanje, kopiranje strojne besede v register, prehod na naslednji razdelek kode). Seveda, za udobje, so programerji razvili vrsto pisemskih analogov za te strojne ekipe, in ta način komuniciranja s strojnim "železom" se imenuje asembler.
Asembler
Jeziki na visoki ravni
Strukturno programiranje
Programski jezik C
Objektno usmerjeno programiranje (OOP)
Na primer, oseba, avto, oddelek je abstrakcija, zato jo lahko opišemo kot razred. Ivan Ivanovič, bela "Škoda" s številkami nn123 operativnega oddelka - to so konkretni predstavniki teh abstrakcij, kar pomeni, da je objektno usmerjen pristop k programiranju predmet teh razredov. Naloga razvijalca je opisati abstraktne in konkretne objekte realnega sveta v jeziku OOP-a. Opis razreda je implementiran v opisu polj in metod.
Polja
razred Car
{
niz blagovne znamke = "Hunday" Solaris ";
string color = "Yellow";
dvojna hitrost = 0;
/* preostanek programske kode * /
}
Encapsulation
Polja lahko spremenijo svoj pomen Če program ne želi, da so polja na voljo izven razreda, nekateri drugi programi (uporabnik) pa lahko spremenijo svoje vrednosti, jih "zaokroži, kar pomeni, da jih ni mogoče uporabiti s ključnimi besedami zasebno, Če Na primer, lahko objavite vse razrede razreda:
razred Car
{
barva javnega niza,
javna dvojna hitrost,
*
preostali del programske kode
*
}
V tem primeru dostop do ta polja ne bodo omejena. V vmesniku lahko pomotoma ali namerno spremenite pomembne podatke na poljih, ki jih želitev prihodnosti nepravilno vplivajo na delo celotnega programa:
& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
razred Glavni razred
{
javna statična praznina Glavna ()
{
Avto avtomobil = nov avto ();
car.colour = "Rdeča";
/* preostali del programske kode * /
}
}
Da bi se izognili nenamernim spremembam podatkov, jih razvijalec zaokroži. V primeru barve avtomobila, namesto javnega, morate pisati zasebno. Potem sprememba barve ne bo mogoča.
Metode
Metode so funkcije, ki vam omogočajo delovanje s polji razreda ali z nekaterimi drugimi podatki. Kot vsaka funkcija v proceduralnih programskih jezikih jemljejo podatke in lahko bodisi vrnejo rezultat izračunov bodisi ne vrnejo (na primer, prikažejo nekaj na konzoli). Na primer:
razred Car
{
javni niz blagovna znamka = "Hunday Solaris";
javni niz barva = "rumena";
javna dvojna hitrost = 0;
/* spodaj opisuje metodo "Drive", ki se posreduje Booleovi spremenljivki whatIsTrafficLight (z vrednostmi samo false - rdeča luč ali true - zelena luč, to je, lahko greš) * /
javni void Drive (bool whatIsTrafficLight)
{
če (whatIsTrafficLight == true)
{
hitrost = hitrost + 40;
}
drugo
{
hitrost = 0;
}
}
}
Na koncu z uporabo metode Drive spreminjamo hitrost razreda stroja.
& lt; text /javascript "& gt;
lahko blockSettings = {blockId:" RA-70350-45 ", renderTo:" yandex_rtb_R-A-70350-45 ", async: ! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings.statId = 70350;
! funkcija (a, b, c, d, e) {a [c] = a [c] || [], [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings)} ), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex.ru/system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
Polimorfizem
Drugi "steber" razvoja objektno usmerjenega pristopa je polimorfizem. Bjorn Stroustrup, ustvarjalec jezika C ++, je opredelil polimorfizem, kot sledi: "En vmesnik - veliko izvedb." Skratka, polimorfizem je zmožnost ustvarjanja abstraktnega razreda, ki opisuje celotno zasnovo strukture, in iz nje so že ustvarjeni izvedeni razredi, ki izvajajo manjkajoče mehanizme. Na primer, ko ustvarjamo lik v računalniški igri, z vidika objektno usmerjenega pristopa, je logično najprej izvesti razred abstraktne osebe in iz njega že ustvariti posebne razrede: Archer, Healer, Warrior in tako naprej.
Ali pa primer z avtomobilom. Če delujemo z enim strojem, z več področji in metodami, ni nujno, da ročno spreminjamo več vrednosti v kodi. Toda koliko takih strojev lahko? Ali, na primer, uporabniki na družabni mreži? Vsakdo ima ime, priimek, zakonski stan, fotoalbum, veliko število vrednot, povezave do drugih strani, druge uporabnike in tako naprej. In če se bodo razvijalci socialnih omrežij odločili za preoblikovanje in nekatere uporabniške nastavitve lahko spremenite ali odstranite, bo s tem pristopom veliko dela. Rešuje ta problemski objektno usmerjen pristop. Razredi so ustvarjeni ne za vsak posamezen predmet, ampak iz abstraktnega razreda in iz njega na začetkunastanejo dediči. Tako kot enkapsulacija je polimorfizem drugo najpomembnejše pravilo OOP.
Dedovanje
Pri uporabi objektno usmerjenega pristopa je dedovanje še eno pravilo. Sestavljen je iz sposobnosti razreda dediča, da uporablja funkcije matičnega razreda. Na primer, če želimo imeti v našem voznem parku motorno kolo, potem ni potrebno pisati enakih lastnosti za nov razred. Namesto tega lahko rečete, da je motorno kolo dedič iz avtomobila. Potem postane možno uporabiti podobna polja in metode stroja v razredu motornega kolesa, na primer znamko, barvo, hitrost. V kodi dedovanja je navedeno:
razred Motocycle: Car
{
/* preostanek programske kode * /
}
Polja in metode avtomobila nadrejenega razreda so na voljo za uporabo v motociklu razreda dedičev. Skratka, dedovanje je mehanizem za ponovno uporabo kode in je namenjen priročni in logično kompetentni razširitvi programa. Tudi dedovanje pomaga spoštovati načelo DRY (Ne ponavljaj se). V skladu s tem načelom koda ne sme imeti ponavljajočih se lokacij, saj ustvarja nepotrebno breme pri pripravi in izvajanju programa. Če se v kodi pojavljajo ponavljajoča se področja, jo je treba optimizirati - ponovite jih z ločenimi metodami in jih po potrebi vzbudite; uporabiti dedovanje za logično podobne objekte, ki imajo enaka polja in metode.