Kehittäjien keskuudessa olio-ohjelmointi on kerännyt runsaasti seuraajia. Suosittu tietokonekieli Python noudattaa myös olio-paradigmaa.
Se käsittelee objektien ja luokkien määrittelyä Pythonissa, joka muodostaa perustan OOPs-periaatteille. Tässä "olio-ohjelmointia Pythonissa" käsittelevässä opetusohjelmassa opit ilmoittamaan Python-luokkia, luomaan niistä objekteja ja käyttämään neljää OOP-tekniikkaa.
Joten ensimmäinen asia ensin.
Mikä on olio-ohjelmointi?
Olio-ohjelmoinnin (OOP) pääpaino on "objektien" luomisessa. Joukko toisiinsa liittyviä muuttujia ja funktioita muodostaa objektin.
Näitä muuttujia kutsutaan usein kohteen attribuutteiksi, ja sen käyttäytymistä kutsutaan usein sen funktioiksi. Nämä kohteet tarjoavat sovellukselle tehokkaamman ja ymmärrettävämmän rakenteen. Auto on esimerkki esineestä.
Jos auto olisi esine, sen ominaisuuksiin kuuluisivat esimerkiksi sen väri, malli, hinta, merkki jne. Lisäksi se kiihdyttäisi, hidastaisi ja vaihtaisi vaihdetta.
Toinen esimerkki: Jos ajattelemme koiraa esineenä, sen ominaisuudet saattavat olla väri, rotu, nimi, paino jne. Ja hän liikkuisi, haukkuu, leikkisi jne.
Koska se sisältää reaalimaailman käsitteitä, kuten objektit, piilottamisen, periytymisen jne., ohjelmointiin, olio-ohjelmointi tunnetaan hyvin. Koska se on niin samanlainen kuin todelliset olosuhteet, visualisointi on yksinkertaisempaa.
Olio-ohjelmoinnin käsitteet
Luokat ja objektit Pythonissa
Kuten kaikki muutkin oliopohjaiset kielet, Python antaa sinun suunnitella luokkia objektien luomiseksi. Pythonin suosituimmat tietotyypit, mukaan lukien merkkijonot, luettelot, sanakirjat ja muut objektit, ovat sisäänrakennettuja luokkia.
Luokka on joukko linkitettyjä menetelmiä ja ilmentymämuuttujia, jotka määrittelevät tietynlaisen objektin. Luokka voidaan nähdä objektin mallina tai mallina. Luokan muodostavat muuttujat tunnetaan attribuutteina.
Objekti on luokan jäsen, jolla on määritetty attribuuttijoukko. Tämän vuoksi samaa luokkaa käyttämällä voidaan luoda mikä tahansa määrä objekteja.
Python-luokat määritellään sanalla class, jota seuraa sitten luokan nimi ja kaksoispiste. Esimerkki papukaijaluokasta voisi olla:
Tässä julistetaan tyhjä luokka Parrot käyttämällä luokan avainsanaa. Luomme esiintymiä luokista. Ilmentymä on tietty objekti, joka on tehty tietystä luokasta. 'pass' käytetään usein varakoodina, jonka toteutuksesta saatamme luopua toistaiseksi. Voimme suorittaa Python-koodin aiheuttamatta virhettä käyttämällä "pass"-avainsanaa.
Luokan ilmentymä johtaa objektiin (instanssi). Vain objektin kuvaus määritellään luokkaa luotaessa. Tämän seurauksena tallennustilaa tai RAM-muistia ei ole varattu.
Esimerkki papukaijaluokan objektista on:
Obj on tässä tapauksessa Parrot-luokan objekti.
Oletetaan, että tiedämme papukaijoista yksityiskohtia. Näytämme nyt kuinka luodaan papukaijaluokka ja sen objektit.
Erikoismenetelmä (__init__)
Metodi nimeltä init määrittää attribuutit, jotka jokaisella Parrot-objektilla on oltava (). Kun uusi Parrot-objekti muodostetaan, funktio __init__ luo objektin alkutilan määrittämällä arvot, jotka toimitamme objektin ominaisuuksien sisällä.
Joten luokan jokainen uusi esiintymä alustetaan komennolla __init__(). Vaikka __init__() voi hyväksyä minkä tahansa määrän parametreja, self on aina ensimmäinen parametri.
Viittaus aktiivisen luokan ilmentymään sisältyy itseargumenttiin. Itseparametri, joka linkittää luokan nykyisen objektin osoitteeseen ja antaa meille pääsyn sen (objektin) muuttujien tietoihin, merkitsee sitä.
Esimerkki 1
Perustimme luokan nimeltä Parrot yllä olevaan koodiin. Seuraavaksi määritetään ominaisuudet. Asian ominaisuudet ovat sen ominaisuuksia. Luokan __init__-funktiossa nämä ominaisuudet määritellään.
Kun objekti muodostetaan, alustusmenetelmä on se, jota kutsutaan aluksi. Sitten luodaan Parrot-luokan esiintymät. Blaze ja Wonda ovat tässä tapauksessa viittauksia (arvoja) uusiin objekteihimme. __class .species antaa meille mahdollisuuden käyttää class-attribuuttia.
Jokaisella luokan esiintymällä on samat ominaisuudet. Ilmentymän ominaisuuksia voidaan käyttää myös käyttämällä blaze.name ja blaze.age. Kaikilla luokan esiintymillä on kuitenkin ainutlaatuiset esiintymän attribuutit.
Esimerkki 2
Menetelmät
Luokan rungossa määriteltyjä toimintoja kutsutaan menetelmiksi. Niitä käytetään määrittämään, kuinka esine käyttäytyy.
Kaksi menetelmää, sing() ja dance, on määritelty edellä mainitussa sovelluksessa (). Koska niitä kutsutaan ilmentymäobjektissa, kuten flamessa, niitä kutsutaan ilmentymämenetelmiksi.
OOPS-konseptin perusteet
Olio-ohjelmoinnin neljä ydinideaa ovat:
- Perintö
- kapselointi
- polymorfismi
- Abstraktio
Perintö
Ihmiset kertovat usein vastasyntyneille, että heillä on kasvojen piirteitä, jotka muistuttavat vanhempiensa ominaisuuksia tai että he ovat perineet erityisiä piirteitä vanhemmiltaan.
On mahdollista, että olet myös huomannut, että sinulla on joitain yhteisiä piirteitä vanhempiesi kanssa. Tositilanne on myös melko samanlainen kuin perinnössä.
Tässä tapauksessa "vanhempiluokkien" ominaisuudet siirtyvät kuitenkin "lapsiluokkiin". Näitä näkökohtia kutsutaan tässä yhteydessä "ominaisuuksiksi" ja "menetelmiksi".
Luokka voi johtaa menetelmänsä ja attribuuttinsa toisesta luokasta käyttämällä periytymistekniikkaa. Periytys on prosessi, jossa alaluokka vastaanottaa yläluokan ominaisuudet.
esimerkki:
Yllä olevassa esimerkissä lapsiluokka Poika perii yläluokan Human. Koska Boy perii ihmiseltä, voimme käyttää kaikkia sen menetelmiä ja attribuutteja, kun luomme Boy-luokan esiintymän.
Poikaluokassa on myös määritelty menetelmä nimeltä schoolName. Pääluokkaobjekti ei voi käyttää menetelmää schoolName. SchoolName-metodia voidaan kuitenkin kutsua luomalla lapsiluokkaobjekti (Boy).
kapselointi
Kaikille ohjelman muuttujille maailmanlaajuisen pääsyn antaminen ei ole viisasta työskennellessäsi luokkien ja arkaluonteisten tietojen käsittelyssä.
Antamatta ohjelmalle täydellistä pääsyä mihinkään näistä muuttujista, kapselointi tarjoaa meille mekanismin tarvittavien muuttujien saamiseksi.
Tarkoitusta varten nimenomaisesti määriteltyjä menetelmiä voidaan käyttää muuttujien tietojen päivittämiseen, muokkaamiseen tai poistamiseen. Tämän ohjelmointimenetelmän etuna on parannettu tietoturva ja tiedonsyötön hallinta.
Katso alla olevasta esittelystä, kuinka nopeasti muuttujat ovat käytettävissä:
polymorfismi
Oletetaan, että käytät puhelinta selataksesi Instagram-syötteitä. Kun halusit kuunnella musiikkia, avasit Spotifyn ja aloit soittamaan suosikkikappaleitasi.
Jonkin ajan kuluttua sait puhelun, joten keskeytit taustalla tekemäsi puhelun vastataksesi siihen. Ystäväsi soitti ja pyysi sinua lähettämään hänelle tekstiviestin tietyn henkilön puhelinnumeroon.
Joten lähetit hänelle puhelinnumeron tekstiviestillä ja jatkoit tehtäviäsi. Oletko ottanut kantaa mihinkään? Yhdellä laitteella – matkapuhelimellasi – voit selata syötteitä, kuunnella musiikkia, ottaa vastaan ja soittaa puheluita ja lähettää viestejä.
Siksi polymorfismi on verrattavissa siihen. Poly tarkoittaa lukuisia, ja morfi tarkoittaa erilaisia muotoja. Siksi polymorfismi kokonaisuudessaan viittaa johonkin, jolla on erilaisia muotoja.
Tai "jotain", joka voi olosuhteista riippuen osoittaa erilaista käyttäytymistä. OOPS:ssa polymorfismi kuvaa funktioita, joilla on sama nimi, mutta erilainen käyttäytyminen. Vaihtoehtoisesti eri funktion allekirjoitus samalla funktion nimellä (funktiolle välitetyt parametrit).
esimerkki:
Tässä voimme käyttää muuttuvaa eläintä iteroidaksemme seepran ja kanin kohteiden poikki käyttämällä vastaavia esiintymismenetelmiä. Tämän seurauksena sekä seepran että kanin käyttäytymistä (väri() & syö()) edustaa tässä yksi muuttuja nimeltä eläin. Siksi se noudattaa polymorfismisääntöjä.
Abstraktio
Käytät todennäköisesti kannettavaa tietokonetta, puhelinta tai tablettia lukeaksesi tätä sisältöä. Lukiessasi sitä oletettavasti teet myös muistiinpanoja, alleviivaat keskeisiä kohtia ja ehkä tallennat tietoja henkilökohtaisiin tiedostoihisi.
Kaikki mitä voit nähdä lukiessasi tätä on "näyttö", jossa on sinulle näytettävät tiedot. Näet vain näppäimistön näppäimet kirjoittaessasi, joten sinun ei tarvitse huolehtia sisäisistä hienouksista, kuten siitä, kuinka näppäimen painaminen voi saada sanan näkyviin näytölle.
Vaihtoehtoisesti kuinka painikkeen painaminen näytöllä voi käynnistää uuden välilehden.
Siksi kaikki, mitä voimme havaita tässä tilanteessa, on abstraktia. Voimme nähdä vain sen luoman tuloksen, emme sisäisiä monimutkaisuuksia (joilla on meille itse asiassa merkitystä).
Samoin kuin tämä, abstraktio paljastaa vain ne toiminnot, jotka kaikella on, samalla kun se piilottaa kaikki toteutukset tai sisäiset yksityiskohdat.
Abstractionin päätavoitteena on piilottaa taustatiedot ja mahdolliset ylimääräiset datatoteutukset, jotta ihmiset näkevät vain sen, mitä heidän tarvitsee nähdä. Se auttaa hallitsemaan koodin monimutkaisuutta.
esimerkki:
Tässä on ajoneuvoihin liittyvä abstrakti luokka. Koska se on periytynyt abstraktista luokasta ABC, se on abstrakti. Koska abstrakteja menetelmiä ei määritellä tai ne pysyvät tyhjinä, luokassa Ajoneuvo on abstrakti menetelmä nimeltä no of wheels, jolta puuttuu määritelmä.
He ennakoivat luokkia, jotka perivät abstraktit luokat antaakseen menetelmän toteutuksen.
OOPS-konseptien edut
- Kapseloimalla saavutetaan korkea turvallisuus ja tietosuoja.
- Joustavuus useiden saman luokan polymorfisten versioiden käytössä.
- Koodin korkeaa monimutkaisuutta vähensi abstraktio.
- Sen sijaan, että seulottaisiin satoja koodirivejä yksittäisen ongelman löytämiseksi, ohjelmoinnin modulaarisuus tekee virheenkorjauksesta yksinkertaista.
- Koodin uudelleenkäyttö johtuu aliluokan emoluokan ominaisuuksien perimisestä.
- Tehokas ongelmanratkaisu on mahdollista, koska luomme luokkia, jotka tekevät tarvittavat toimenpiteet kullekin miniongelmalle. Seuraava ongelma voidaan ratkaista vieläkin nopeammin, koska voimme käyttää näitä luokkia uudelleen.
Yhteenveto
Lopuksi opimme OOPS-ideoista Pythonissa, tämän hetken kuumimmassa ohjelmointiparadigmassa.
Tämän luettuasi sinun on täytynyt ymmärtää, että OOPS-paradigma käsittelee kokonaan luokkien ja objektien ideaa. ja OOPS-käsitteet, kuten kapselointi, polymorfismi, periytyminen ja abstraktio.
Jätä vastaus