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?
- Mikä on abstraktio OOP:ssa?
- Esimerkki
- Abstraktio Javassa
- Ero
- Abstraation edut
- Yhteenveto
- Usein kysytyt kysymykset (FAQ)
- Suositellut artikkelit
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.
- Etunimi
- Sukunimi
- Osoite
- Yhteysnumero
- Suosikkiruoat
- harrastuksia
- Lempielokuvat
- Suosikkikappaleet
- Todiste Yhdysvaltain kansalaisuudesta
- Valtion myöntämä kuvallinen henkilötodistus
- 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ä.
- Abstrakti syntyperäinen
- Abstrakti strictfp
- Abstrakti staattinen
- Abstrakti synkronoitu
- Lopullinen
- Abstrakti yksityinen
OOP:lla on neljä pilaria – perinnöllisyys, abstraktio, kapselointi ja polymorfismi.
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 tietokoneviruksistaVoimme 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 äänentallennusohjelmistoAsiakastaulukon tietueet sisältävät asiakkaisiin liittyviä tietoja seuraavissa sarakkeissa:
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
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 -
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.