Verkkosovellukset

OOP-konsepti aloittelijoille: Mitä abstraktio on?

30. lokakuuta 2021

Keskeinen käsite Olio-ohjelmointi (OOP) on abstraktio. Ja se on myös yksi hämmentävämmistä.

Abstraktiolla tarkoitetaan olio-ohjelmoinnissa vain olennaisten ominaisuuksien näyttämistä ja käyttäjän tarpeettoman toteutustietojen piilottamista.

Sen avulla käyttäjät eivät joudu hukkumaan piilotettuun logiikkaan, joka tekee käyttäjistä monimutkaisen logiikan. Siten OOPs abstraktioi piilotetun logiikan, jotta käyttäjän ei tarvitse ymmärtää tai edes ajatella sitä.

Mutta ensin annamme sinulle yleiskuvan OOP:ista.

Sisällysluettelo

Mikä on OOP?

OOP tai Object-Oriented Programming on ohjelmoinnin tyyppi, joka on ohjelmointiparadigman perusta.

Se on suosituin ohjelmointimenetelmä, jota monet ohjelmoijat mukauttavat koulutusuransa aikana.

Toisin kuin prosessiohjelmointi, olio-ohjelmoinnilla on useita etuja:

  • OOPs pitää Java koodi DRY eli Älä toista itseäsi helpottamalla koodin ylläpitoa, muokkaamista ja virheenkorjausta. Tämä tarkoittaa, että ohjelmoija voi vähentää koodin toistoa purkamalla yhteisen koodin ja sijoittamalla ne yhteen paikkaan.
  • Se on nopeampi ja helpompi suorittaa kuin prosessiohjelmointi.
  • Voit kehittää uudelleenkäytettäviä sovelluksia lyhyemmässä kehitysajassa, jotka sisältävät vähemmän koodia OOP:iden avulla.
  • Se antaa selkeän ohjelmarakenteen.

Olio-ohjelmoinnissa on kaksi perusasiaa: luokka ja objekti.

    Luokka -Se on malli objekteille tai suunnitelma tiettyjen objektien luomiseksi. Esimerkiksi laaja luokka, kuten koira, on luokka, joka määrittelee attribuutin, kuten värin, rodun, nimen jne., jotka luokan esineet tai esiintymät käyttävät.Objekti -Objektit ovat luokkaesiintymiä, jotka perivät kaikki muuttujat ja menetelmät luokasta. Esimerkiksi luokka – Koiralla on esineitä, kuten dalmatialainen, saksanpaimenkoira, bernhardinkoira, kultainennoutaja jne.

OOP:lla on neljä pilaria – perinnöllisyys, abstraktio, kapselointi ja polymorfismi.

    Perintö– Kun aliobjekti perii kaikki emoobjektin ominaisuudet ja käyttäytymiset, sitä kutsutaan periytymiseksi. Esimerkiksi dalmatianpennulla on myös samat ominaisuudet kuin vanhemmillaan.Abstraktio– Tarpeettomien yksityiskohtien ja toiminnallisuuksien piilottaminen ja vain työn kannalta tärkeän näyttäminen on abstraktiota. Esimerkiksi luut, lihakset ja muut tavarat ovat piilossa ihomme sisällä, mikä tarjoaa koirille abstraktion ja mahdollistaa muiden toimintojen ja toimintojen tekemisen.Kapselointi– Kapselointi tarkoittaa koodin sitomista dataan yhdeksi yksiköksi tai niiden sitomista yhteen. Luokat ja objektit on kapseloitu Java- ja muihin OOP-kieliin. Esimerkiksi koira on luokka, joka sisältää kaikentyyppisiä ja -rotuisia koiria.Polymorfismi– Yhden tehtävän suorittamista eri tavoin kutsutaan polymorfismiksi. Esimerkiksi puhuminen on menetelmä, mutta se suoritetaan eri tavalla: koira haukkuu, ihminen puhuu, kissa miau, linnun viserrys jne.

Tämä artikkeli keskittyy vain yhteen OOP-konseptiin – abstraktioon.

Mikä on abstraktio OOP:ssa?

OOP:issa abstraktio on yksi tärkeimmistä käsitteistä, jonka avulla ohjelmoijat voivat keskittyä vain tarkasteltavana olevan järjestelmän kannalta tärkeisiin näkökohtiin.

Abstraktio antaa ohjelmoijalle mahdollisuuden siirtää painopistettä toimintojen toteutusyksityiskohdista luokkiin, käytettävissä oleviin menetelmiin jne. ohjelmoinnin yksinkertaistamiseksi.

Katso myös 2 parasta tapaa päästä eroon tietokoneviruksista

Voimme ymmärtää abstraktiota käyttämällä esimerkkejä periytymisestä ja kapseloinnista:

Periytyshierarkiassa yläluokat tai korkeammat luokat sisältävät yksinkertaisen ja yleisen toteutuksen, mutta alaluokka tai alempi luokka sisältää korkeampien luokkien yksityiskohtaisemman toteutuksen. Tämä on abstraktio.

Kun ohjelmoija piilottaa yhden luokan toteutustiedot toisilta luokilta kapseloituna, luokka on yksinkertaisempi.

Esimerkki

Mitään ei voi ymmärtää paremmin ilman esimerkkejä. Esimerkit tarjoavat käytännöllisen lähestymistavan, jonka avulla kuka tahansa voi ymmärtää paremmin, mistä joku puhuu.

Tarkastellaanpa muutamia tosielämän esimerkkejä ymmärtääksemme abstraktiota.

1. Kahvinkeitin

Maailmassa kaadetaan yli 1,4 miljardia kupillista kahvia päivässä, ja noin 45 % siitä tulee Yhdysvalloista. Joten voimme sanoa, että kahvi on yksi rakastetuimmista juomista tässä maailmassa.

Kahvilat valmistavat kahvia kahvinkeittimen avulla lisäämällä siihen vettä ja kahvipapuja. He käynnistävät koneen ja valitsevat sitten haluamasi kahvin, minkä jälkeen kone valmistaa sinulle herkullisimman kahvin.

Mutta oletko koskaan pysähtynyt ja saanut tietää, kuinka kone keittää kahvin? Mikä on ihanteellinen lämpötila, jota se käyttää? Mikä on kahvimäärä, jonka se laittaa?

Ei. Eikö?

Näin kahvinkeitin abstraktioi sisäisen toiminnastaan ​​ja antaa sinun keittää kupin kahvia ja nauttia siitä.

Samaa käsitettä käytetään olioohjelmointikielissä, kuten Java. Järjestelmän sisäinen toiminta on irrotettu ohjelmoijasta, jotta he voivat nauttia ohjelmoinnista.

2. Auto

Auto on toinen todellinen esimerkki abstraktiosta.

Auto on monimutkainen järjestelmä, joka koostuu erilaisista osista, kuten moottorista, akusta, jäähdyttimestä, etu- ja taka-akselista, voimansiirtojärjestelmästä, ohjausjärjestelmästä, jousitusjärjestelmästä, sähköjärjestelmästä ja monista muista.

Kaikkea näistä osista ei kuitenkaan tarvitse tietää voidakseen käyttää autoa.

Auton käyttö on yhtä helppoa kuin avaimen kääntäminen virtalukkoon tai käynnistyspainikkeen painaminen ja sitten ajaminen.

Ei tarvitse ymmärtää miten auton moottori käynnistyy, polttoainejärjestelmä, sähköjärjestelmä jne. Voit käynnistää auton ja ajaa pois.

3. Mikroaaltouuni

Mikroaaltouuni on sisältä monimutkainen kone, mutta sillä on melko yksinkertainen ja helppokäyttöinen käyttöliittymä.

Kosketuspaneeli tai painikkeet ovat kaikki, joiden kanssa käytämme ruokaa kypsennämme, lämmitämme, paistamme, lämmitämme ja grillaamme.

Nykyään mikroaallot voidaan käynnistää matkapuhelimilla ja niissä on paljon esikeittovalikkotoimintoja, kuten paistettu kakku, lämmin maito, spagetti, pizzan valmistus jne., joissa on esiasetetut lämpötila- ja aikaasetukset. Meidän tarvitsee vain valita vaihtoehto ja painaa aloituspainiketta.

Ei tarvitse ymmärtää, miten ruoka kypsennetään, miten mikroaaltouunit toimivat, miten lämpötila-asetukset toimivat jne.

Käytämme mikroaaltouunia ja keskitymme muihin tärkeisiin asioihin, kuten kakun makuun, teen/kahvin aineksiin, lämmityksen ajoitukseen ja muihin ruoanlaittomenoihin.

Tämä on toinen loistava esimerkki abstraktiosta, joka auttaa meitä ymmärtämään olio-ohjelmointia.

Ymmärrämme nyt OOP:n yhden teknisen esimerkin avulla.

4. Passihakemus

Passisovellusta luotaessa tulee päästä käsiksi asiakkaan tietoihin tietokannasta, joka sisältää monenlaisia ​​eri asiakkaisiin liittyviä tietoja.

Katso myös 26 paras ilmainen äänentallennusohjelmisto

Asiakastaulukon tietueet sisältävät asiakkaisiin liittyviä tietoja seuraavissa sarakkeissa:

  • Etunimi
  • Sukunimi
  • Osoite
  • Yhteysnumero
  • Suosikkiruoat
  • harrastuksia
  • Lempielokuvat
  • Suosikkikappaleet
  • Todiste Yhdysvaltain kansalaisuudesta
  • Valtion myöntämä kuvallinen henkilötodistus

Kaikki näiden sarakkeiden sisältämät tiedot eivät kuitenkaan ole tärkeitä passin saamisen kannalta.

Suosikkiruokiin, harrastuksiin, suosikkikappaleisiin ja suosikkielokuviin liittyviä tietueita ei vaadita passia haettaessa.

Siten, kun vain vaaditut kentät on valittu tietojoukosta, voidaan nähdä abstraktio, kun haemme, valitsimme ja/tai poistamme asiakkaisiin liittyviä tietoja.

Näitä tietoja voidaan käyttää moniin muihin käyttötarkoituksiin, kuten pankkisovellukset, sairaalasovellukset, valtion tietokannat, portaalitiedot jne. ilman suuria muutoksia.

Tämä on olio-ohjelmoinnin (OOP) abstraktion etu.

Näiden neljän esimerkin avulla toivomme, että ymmärrät OOP:t hieman paremmin. Ymmärrämme nyt kuinka abstraktio tehdään javassa.

Abstraktio Javassa

Javassa abstraktio voidaan saavuttaa rajapintojen ja abstraktien luokkien avulla.

1. Käyttöliittymä

Käyttöliittymä on kuin luokkasuunnitelma, jossa on menetelmiä ja muuttujia. Rajapinnassa ilmoitetut menetelmät eivät kuitenkaan sisällä ketään. Rajapinnassa ilmoitetut menetelmät ja muuttujat tulee toteuttaa rajapinnan toteuttavan luokan toimesta.

Esimerkiksi Fun-käyttöliittymä sisältää seuraavat:

|_+_|

Luokan Fun toteutusliittymä Fun täytyy toteuttaa play().

Javassa käyttöliittymä ilmoitetaan Interface-avainsanan avulla ja sitä käytetään täydellisen abstraktion tarjoamiseen.

Siten kaikki käyttöliittymämenetelmät ovat julkisia ja niillä on tyhjä runko, jonka kaikki kentät ovat oletuksena julkisia, staattisia ja lopullisia.

Käyttöliittymän syntaksi:

|_+_|

Luokka voi toteuttaa rajapinnan ja se voidaan toteuttaa implements-avainsanalla. Tämän luokan tulee toteuttaa kaikki menetelmät ja sisältää kaikki muuttujat, jotka on ilmoitettu sen toteuttamissa liitännöissä.

Merkitys

  • Löysä kytkentä ja täydellinen abstraktio voidaan saavuttaa rajapintojen avulla.
  • Liitännät sisältävät lopullisia, staattisia ja julkisia muuttujia, jotka antavat täydellisen abstraktion, kun taas abstraktit luokat antavat osittaisen abstraktion.
  • Javassa on mahdotonta suorittaa useita perintöjä, mutta rajapintojen avulla voidaan saavuttaa useita perintöjä.

Java 8:n päivityksenä liitäntöihin lisättiin oletus- ja staattiset menetelmät ja Java 9:n osana rajapintoihin yksityiset menetelmät.

2. Abstraktiluokka

Abstrakti on Java-sana, jota käytetään abstraktion tarjoamiseen osana olio-ohjelmointia. Se on pääsyä estävä muokkaaja.

Abstrakti luokka - on luokka, joka toteuttaa osittain abstraktion Javassa. Tässä osittainen abstraktio tarkoittaa, että toisin kuin rajapinnoilla, kaikilla menetelmillä ei ole abstraktin luokan metodimääritelmää.

Abstrakteja luokkaobjekteja ei voi ilmentää, joten minkä tahansa abstraktin luokan toteuttavan aliluokan tulee toteuttaa kaikki menetelmänsä tai alaluokka on julistettava itse abstraktiksi luokaksi.

Abstraktin luokan syntaksi on:

|_+_|

Abstraktit menetelmät - ovat menetelmiä, joilla on vain määritelmä, mutta ei toteutusta. Ne ilmoitetaan abstraktissa luokassa käyttämällä abstraktia tyyppiä.

Abstrakteja menetelmiä kutsutaan myös aliluokkavastuuksi, koska ne ovat myös riippuvaisia ​​ne toteuttavasta luokasta, koska ne ovat osa abstraktia luokkaa.

Abstraktin menetelmän syntaksi on:

Abstract return_type (parameter_list);

Abstrakteille menetelmille on olemassa muutamia sääntöjä:

Abstrakti menetelmä voidaan ilmoittaa vain abstraktissa luokassa. Siten mikä tahansa luokka, joka sisältää joko yhden tai useamman abstraktin menetelmän, on julistettava abstraktiksi.

Katso myös 5 korjausta, jotka estävät Avast-selaimen avautumisen käynnistyksen yhteydessä

On olemassa muutamia laittomia yhdistelmiä muiden muokkainten ja abstraktin muuntelijan välillä, jotka on otettava huomioon -

  • Abstrakti syntyperäinen
  • Abstrakti strictfp
  • Abstrakti staattinen
  • Abstrakti synkronoitu
  • Lopullinen
  • Abstrakti yksityinen

Nyt herää kysymys, jos meillä on rajapintoja, milloin käytämme abstrakteja menetelmiä ja luokkaa?

Kun kahdella tai useammalla alaluokalla on samanlainen koodinpätkä, joka tekee saman asian, mutta toteuttavat sen eri tavalla, abstraktit menetelmät ilmoitetaan.

Liitäntöjen avulla voit vain määrittää toiminnallisuuden, mutta ei toteuttaa sitä, kun taas abstraktissa luokassa alaluokat voivat toteuttaa tai ohittaa menetelmät.

Ero

Tiedämme nyt javan abstraktion ja sen, kuinka voimme saavuttaa sen. Tarkastellaan nyt muutamia eroja selventääksemme hämmennystämme siitä, kuinka abstraktio eroaa kapseloinnista ja miksi tarvitsemme abstrakteja luokkaa ja rajapintoja.

1. Abstraktio ja kapselointi

Abstraktio ja kapselointi ovat osa OOP:n neljää pilaria – perinnöllisyys, kapselointi, polymorfismi ja abstraktio.

Kuitenkin, toisin kuin kaksi muuta, useimmat ihmiset hämmentyvät aina kapseloinnin ja abstraktion välillä, koska niillä on samanlainen merkitys.

Tarkastellaan eroa ymmärtääksemme paremmin.

Abstraktio Kapselointi
Ei-toivottujen yksityiskohtien piilottamista samalla kun olennaisia ​​yksityiskohtia näytetään, kutsutaan ohjelmoinnissa abstraktioksi.Ohjelmoinnissa kapselointi tarkoittaa koodin ja datan yhdistämistä yhdeksi yksiköksi.
Abstraktion avulla ohjelmoija voi keskittyä siihen, mitä tietoa objektin tulee sisältää.Kapseloinnin avulla voidaan piilottaa sisäiset yksityiskohdat ja mekaniikka esineen toiminnan taakse turvallisuuden takaamiseksi.
Pystymme ratkaisemaan suunnittelutason ongelmia olioohjelmoinnin abstraktion avulla.Pystymme ratkaisemaan toteutusongelmia olioohjelmoinnin kapseloinnin avulla.

2. Abstrakti luokka ja rajapinnat

Javassa abstraktio voidaan saavuttaa sekä abstraktin luokan että käyttöliittymän avulla.

Liitännät mahdollistavat 100 % abstraktion, ja abstrakti luokka sallii vain osittaisen abstraktion, mutta näillä tyypeillä on hyvät ja huonot puolensa.

Vaadimme niitä molempia javassa suorittamaan abstraktiota. Ymmärrämme, kuinka ne molemmat eroavat toisistaan.

Abstrakti luokka Käyttöliittymä
Abstrakti luokka on java-luokka, jossa on abstrakti avainsana, joka sisältää lopulliset, staattiset ja staattiset lopulliset muuttujat millä tahansa pääsymäärityksellä.Ainoa julkinen staattinen lopullinen muuttuja on sallittu liitännöille.
Abstraktissa luokassa ei tueta useita perintöjä.Käyttöliittymä tukee useita perintöjä.
Abstraktissa luokassa voi olla sekä abstrakteja että ei-abstrakteja menetelmiä.Käyttöliittymässä vain abstraktit menetelmät ovat sallittuja.
Suojatut ja abstraktit julkiset menetelmät ovat mahdollisia abstraktissa luokassa.Vain abstraktit julkiset menetelmät ovat sallittuja käyttöliittymässä.
Abstrakti luokka voi toteuttaa rajapinnan.Käyttöliittymä ei voi toteuttaa abstraktia luokkaa.

Abstraation edut

Olio-ohjelmoinnissa abstraktion avulla ohjelmoija voi vähentää suunnittelu- ja ohjelmistoprosessin toteuttamisen monimutkaisuutta.

Useita liittyviä luokat voidaan ryhmitellä sisaruksiksi käyttämällä abstraktia Javassa ohjelmointi.

Abstraktion avulla ohjelmoija voi välttää koodin päällekkäisyyden ohjelmassa ja lisätä uudelleenkäytettävyyttä.

Abstraktio lisää sovelluksen tai ohjelman turvallisuutta, koska ohjelmoijat pääsevät käsiksi vain heille tärkeisiin yksityiskohtiin.

Yhteenveto

Abstraktio on yksi hyödyllisimmistä käsitteistä kaikissa olio-ohjelmointikielissä, kuten C++ , Java, C# jne.

On erittäin tärkeää, että ohjelmoijana ymmärrät abstraktion ja sen saavuttamisen, ja toivomme, että tästä artikkelista on ollut sinulle apua.

Usein kysytyt kysymykset (FAQ)

Mitä ovat abstraktio ja kapselointi?

Abstraktio – Se on OOP:n peruskonsepti, joka tarkoittaa, että käyttäjälle näytetään vain hänelle tärkeät yksityiskohdat ja kaikki muut tarpeettomat yksityiskohdat piilotetaan turvallisesti.
Kapselointi – Se on myös OOP:n peruskonsepti. Kapselointi tarkoittaa datan ja koodin yhdistämistä yhdeksi kokonaisuudeksi, jotta yksityiskohdat voidaan suojata ulkopuolelta.

Mitä on abstraktio?

Cambridgen sanakirjan perusteella abstraktio tarkoittaa epämääräistä tilannetta, joka ei perustu tositapahtumiin.
Ohjelmoinnissa abstraktio tarkoittaa kuitenkin tarpeettomien yksityiskohtien piilottamista käyttäjältä ja niiden näyttämistä tarpeeksi helpottamaan hänen keskittymistä muihin monimutkaisiin ongelmiin.

Anna tosielämän esimerkkejä abstraktiosta?

Jotkut tosielämän abstraktioesimerkit ovat pankkiautomaatti (klikkaamme vain painikkeita ja kassavirtoja), mikroaaltouuni, auto jne.

Mikä on esimerkki ohjelmoinnin abstraktiosta?

Ohjelmointimaailmassa voimme nähdä abstraktiota, jos tarkkailemme ohjelmointikieliä. Lähdimme konekielistä ja lisäsimme hitaasti abstraktiokerroksia piilottaaksemme koneen sisäiset toiminnot, kun saavutimme korkean tason kielet. Tämä antoi meille mahdollisuuden siirtyä yksinkertaisesta matematiikan laskennasta kohti monimutkaisempia ongelmia.

Mitkä ovat OOP:n 4 perusasiaa?

OOP:n neljä perusperiaatetta ovat perinnöllisyys, kapselointi, polymorfismi ja abstraktio.