Mainos
Jos olet tehnyt joitain aloittelijaohjelmointitai jopa alkanut tutkia eri kieliä, olet todennäköisesti törmännyt lauseeseen ”olio-ohjelmointi” (tai “OOP”).
Siellä on kaikenlaisia teknisiä selityksiä siitä, mikä se on, mutta tänään tarkastellaan objektorienedioidun ohjelmoinnin määrittelemistä yksinkertaisella tavalla.
Ennen aloittamista: Menettelykielet
Ymmärtääksesi, mikä olio-ohjelmointikieli on, sinun on ymmärrettävä, mitä se korvasi. Varhaiset ohjelmointikielet olivat menettelytapoja - ns, koska ohjelmoija määritteli hyvin tarkan prosessointisarjan, jonka tietokone suorittaa.

Aikaisin päivät menettelyt kirjoitettiin reikäkorteille. Nämä vaiheet ottivat dataa, suorittivat toimintasarjan kyseiselle datalle, sitten tuottivat uutta dataa.
Menettelykielet toimivat hyvin jonkin aikaa (ja jotkut ovat edelleen käytössä). Mutta kun haluat ohjelmoida jotain perusvaiheiden ulkopuolella, proseduurikielet voivat olla vaikeita hallita. Sieltä kohdennetaan olio-ohjelmointi.
Objektisuunnitellun ohjelmoinnin objekti
Joten mikä on olio-ohjelmointi?
Ensimmäinen oliokeskeinen kieli (jonka yleisesti sovittiin olevan Simula) esitti ajatuksen esineet. Objektit ovat tietokokonaisuuksia, joita käsitellään yksittäisenä kokonaisuutena.
Pyrimme syventämään sitä, mitä se oikeastaan tarkoittaa sekunnissa esimerkin avulla, mutta ensin on puhuttava luokat. Luokat ovat tavallaan kuten esiobjekteja. Ne sisältävät luettelon määritteistä, joista määritettyinä tulee objekti.

Otetaan esimerkki shakkipelin ohjelmoinnista. Meillä voi olla luokka nimeltään Piece. Piecessä on luettelo määritteistä:
- Väri
- Korkeus
- Muoto
- Siirto sallittu
Kohde määrittelee vain yhden tietyn esimerkin kyseiseen luokkaan kuuluvasta esineestä.
Joten meillä voisi olla objekti nimeltään WhiteQueen. Kohteella olisi määritelmät kaikille neljälle määritteelle (valkoinen, pitkä, lieriömäinen ja crenellations, mikä tahansa lukumäärä välilyöntejä mihin tahansa suuntaan). Se voi myös olla menetelmät tai toiminnot.
Mikä tekee tästä niin paljon paremman kuin menettelyllinen lähestymistapa?
Lyhyesti sanottuna, olio-ohjelmointikielet (kuten Java) helpottaa tietojen ja koodien järjestämistä monipuolisemmalla tavalla suuremmassa projektissa.
Jotta voimme keskustella siitä yksityiskohtaisemmin, puhumme olio-ohjelmoinnin neljästä perusteesta.
Olio-ohjelmointi: Abstraktio
Se, että haluat käyttää jotain, ei tarkoita, että sinun on tiedettävä, miten se toimii. Esimerkiksi espressokeitin on monimutkainen. Mutta sinun ei tarvitse tietää miten se toimii. Sinun täytyy vain tietää, että kun painat “Päällä”, saat espresson.

Sama pätee esinekeskeiseen ohjelmointiin. Shakkiesimerkissämme saattaa olla siirto- () -menetelmä. Tämä menetelmä saattaa vaatia paljon tietoja ja muita menetelmiä. Se voi tarvita alkuperäisen ja lopullisen sijainnin muuttujia. Se voisi käyttää toista menetelmää sen määrittämiseen, onko sieppaus vangittu.
Mutta sinun ei tarvitse tietää sitä. Ainoa mitä sinun täytyy tietää on, että kun käsket pala siirtämään, se liikkuu. Se on abstraktio.
Olio-ohjelmointi: kapselointi
Kapselointi on yksi tapa, jolla olio-ohjelmointi tuottaa abstraktiota. Jokainen objekti on tietokokoelma, jota käsitellään yhtenä kokonaisuutena. Ja noissa objekteissa on tietoja - sekä muuttujia että menetelmiä.
Objektin muuttujat pidetään yleensä yksityisinä, mikä tarkoittaa, että muut objektit ja menetelmät eivät pääse niihin. Kohteisiin voidaan vaikuttaa vain käyttämällä niiden menetelmiä.
Piispa-esine saattaa sisältää useita tietoja. Esimerkiksi sillä voi olla muuttuja nimeltä ”sijainti”. Tämä muuttuja on tarpeen siirtää () -menetelmän käyttämiseksi. Ja tietysti sillä on väri.
Tekemällä sijaintimuuttuja yksityiseksi ja siirto () -menetelmä julkiseksi, ohjelmoija suojaa siirtomuuttujaa mistään muusta. Ja jos väri on yksityinen muuttuja, toinen objekti ei voi muuttaa sitä, ellei ole menetelmää, joka sallii muutoksen. (Mitä sinulla todennäköisesti ei olisi, koska kappaleen värin tulisi pysyä vakiona.)
Nämä muuttujat ja menetelmät pidetään Bishop-objektissa. Koska ne on kapseloitu, ohjelmoija voi muuttaa objektin rakennetta tai sisältöä huolehtimatta julkisesta käyttöliittymästä.
Olio-ohjelmointi: Perintö
Olio-ohjelmointikielissä on luokkien lisäksi myös alaluokkia. Ne sisältävät kaikki pääluokan attribuutit, mutta ne voivat sisältää myös muita määritteitä.
Shakkipelissä sotilaspalat tarvitsevat menetelmän, joka voi muuttaa ne muiksi paloiksi, jos ne tehdään pöydän loppuun. Me kutsumme sitä transformPiece () -menetelmäksi.
Kaikki kappaleet eivät tarvitse transforPiece () -menetelmää. Joten emme halua laittaa sitä Piece-luokkaan. Sen sijaan voimme luoda alaluokan nimeltä Sotilas. Koska kyse on alaluokasta, se perii kaikki attribuutit Pieceltä. Joten alaluokan Sotilas esimerkki sisältää värin, korkeuden, muodon ja sallitun liikkeen.
Mutta se sisältää myös transformPiece () -menetelmän. Nyt meidän ei tarvitse koskaan huolehtia siitä, että käytät tätä toimintoa vahingossa. Tässä on tekninen selitys:
Alaluokkien luominen säästää myös paljon aikaa. Sen sijaan, että luodaan uusia luokkia kaikelle, ohjelmoijat voivat luoda perusluokan ja laajentaa sen sitten uuteen alaluokkaan tarvittaessa. (On kuitenkin syytä huomata liian suuri luottamus perintöön on huono 10 ohjelmoinnin periaatetta jokaisen ohjelmoijan on noudatettavaKirjoita aina koodi, jota ylläpitää kuka tahansa, joka voi työskennellä ohjelmistosi kanssa. Tätä varten tässä on useita ohjelmointiperiaatteita, jotka auttavat sinua puhdistamaan teoksesi. Lue lisää .)
Olio-ohjelmointi: Polymorfismi
Polymorfismi on seurausta perinnöstä. Polymorfismin täysin ymmärtäminen vie jonkin verran ohjelmointitietoa, joten pysymme tässä vain perusasioiden kanssa. Lyhyesti sanottuna, polymorfismi antaa ohjelmoijille mahdollisuuden käyttää samannimisiä menetelmiä, mutta eri esineitä.
Esimerkiksi Piece-luokallamme voi olla siirto () -menetelmä, joka siirtää palaa yhdellä välillä mihin tahansa suuntaan. Se sopii kuninkaan kappaleeseen, mutta ei mihinkään muuhun. Tämän ongelman ratkaisemiseksi voidaan määritellä Rook-alaluokassa uusi siirtomenetelmä (), joka määrittelee liikkeen rajoittamattoman määrän välilyöntejä eteenpäin, taakse, vasemmalle tai oikealle.
Nyt kun ohjelmoija vetoaa siirto () -menetelmään ja käyttää pala argumenttina, ohjelma tietää tarkalleen, kuinka kappaleen pitäisi liikkua. Tämä säästää paljon aikaa yrittäessään selvittää, mitä monista eri menetelmistä sinun tulisi käyttää.
Olio-ohjelmointi pähkinänkuoressa
Jos pääsi pyörii hiukan näiden viimeisten neljän määritelmän jälkeen, älä huolestu liikaa. Tässä on tärkeimmät asiat, jotka sinun on muistettava:
- Objektisuuntautunut ohjelmointi kerää tietoa yhdeksi kokonaisuudeksi, jota kutsutaan objekteiksi.
- Jokainen objekti on luokan yksi esiintymys.
- Abstraktio piilottaa esineen sisäisen toiminnan, kun sitä ei ole tarpeen nähdä.
- Kapselointi tallentaa niihin liittyvät muuttujat ja menetelmät esineisiin ja suojaa niitä.
- Perintö antaa alaluokkien käyttää määritteitä vanhemmista luokista.
- Polymorfismi antaa kohteille ja menetelmille mahdollisuuden käsitellä useita eri tilanteita yhdellä käyttöliittymällä.
Jos muistat nämä kohdat, sinulla on hyvä käsitellä mitä olio-ohjelmointi on. Kuten mainitsin, olio-ohjelmoinnin neljä perustaa voi olla hiukan vaikea saada käsittelemään. Mutta kun aloitat ohjelmoinnin, ne tulevat selvemmiksi.
Muista, että olemme keskustelleet vain yleisestä tässä artikkelissa. Erilaisilla objektiorientoiduilla kielillä on omat omituisuutensa ja tapojensa asioiden toteuttamiseksi. Kerran sinä valitse oikea kieli sinulle Etsitkö parhaat ohjelmointikielet? Aloita tästä!Olitpa täysin uusi ohjelmointikieli tai haluatko siirtyä uudentyyppiseen ohjelmointiin, yksi tärkeimmistä kysymyksistä on: "Mikä ohjelmointikieli sopii minulle?" Lue lisää , alat oppia, miten se toteuttaa OOP-periaatteet käytännössä.
Dann on sisältöstrategia ja markkinointikonsultti, joka auttaa yrityksiä luomaan kysyntää ja johtaa. Hän myös blogeja strategia- ja sisältömarkkinoinnista osoitteessa dannalbright.com.