Përmbajtje[Fshih][Shfaqje]
Ndër zhvilluesit, programimi i orientuar nga objekti ka tërhequr një ndjekës të konsiderueshëm. Gjuha e njohur kompjuterike Python gjithashtu i përmbahet paradigmës së orientuar nga objekti.
Merret me përcaktimin e objekteve dhe klasave në Python, i cili formon bazën për parimet OOPs. Në këtë tutorial mbi "programimin e orientuar nga objekti në Python", do të mësoni se si të deklaroni klasa Python, të krijoni objekte prej tyre dhe të përdorni katër teknikat OOPs.
Pra, gjëja e parë së pari.
Çfarë është programimi i orientuar nga objekti?
Fokusi kryesor i programimit të orientuar nga objekti (OOP) është krijimi i "objekteve". Një koleksion variablash dhe funksionesh të ndërlidhura përbën një objekt.
Këto variabla shpesh referohen si atribute të objektit, dhe sjelljet e tij shpesh referohen si funksionet e tij. Këto artikuj i ofrojnë aplikacionit një strukturë më efektive dhe më të kuptueshme. Një automobil është një shembull i një artikulli.
Nëse automobili do të ishte një artikull, atributet e tij do të përfshinin gjëra të tilla si ngjyra, modeli, çmimi, marka, etj. Për më tepër, ai do të përshpejtonte, ngadalësonte dhe ndryshonte marshin.
Një ilustrim tjetër: Nëse mendojmë për një qen si një artikull, atëherë disa nga karakteristikat e tij mund të jenë ngjyra, raca, emri, pesha, etj. Dhe ai do të lëvizte, duke lehur, duke luajtur etj.
Për shkak se ai përfshin koncepte të botës reale si objektet, fshehja, trashëgimia, etj. në programim, programimi i orientuar nga objekti është i njohur. Për shkak se është shumë e ngjashme me rrethanat e botës reale, vizualizimi është bërë më i thjeshtë.
Konceptet e programimit të orientuar nga objekti
Klasat dhe objektet në Python
Ashtu si të gjitha gjuhët e tjera të orientuara nga objekti, Python ju mundëson të dizajnoni klasa për të gjeneruar objekte. Llojet më të njohura të të dhënave në Python, duke përfshirë vargjet, listat, fjalorët dhe objektet e tjera, janë klasa të integruara.
Një klasë është një grup metodash të lidhura dhe variablash shembulli që përcaktojnë një lloj të caktuar objekti. Një klasë mund të shihet si model ose shabllon për një objekt. Variablat që përbëjnë një klasë njihen si atribute.
Një objekt është një anëtar i një klase që ka një grup të caktuar atributesh. Për shkak të kësaj, çdo numër i objekteve mund të krijohet duke përdorur të njëjtën klasë.
Klasat Python përcaktohen duke përdorur fjalën class, e cila më pas pasohet nga emri i klasës dhe një dy pika. Një ilustrim i një klase papagalli mund të jetë:
Këtu, ne deklarojmë klasën boshe Parrot duke përdorur fjalën kyçe të klasës. Ne krijojmë shembuj nga klasa. Një shembull është një objekt i veçantë që është bërë nga një klasë e caktuar. 'kalimi' përdoret shpesh si një bazë për kodin, zbatimi i të cilit mund të heqim dorë për momentin. Ne mund të ekzekutojmë kodin Python pa ngritur një gabim duke përdorur fjalën kyçe "pass".
Një instantacion i një klase rezulton në një objekt (instancë). Vetëm përshkrimi i objektit përcaktohet kur krijohet një klasë. Si rezultat, nuk ka hapësirë ruajtëse ose RAM.
Një shembull i një objekti të klasës papagall është:
Obj është një objekt i klasës Parrot në këtë rast.
Le të themi se dimë specifika për papagajtë. Tani do të demonstrojmë se si të krijojmë klasën e papagallit dhe objektet e saj.
Metoda speciale (__fillim__)
Një metodë e quajtur init përcakton atributet që duhet të ketë çdo objekt Parrot (). Kur formohet një objekt i ri Parrot, funksioni __init__ krijon gjendjen fillestare të objektit duke caktuar vlerat që ne ofrojmë brenda vetive të objektit.
Pra, çdo shembull i ri i klasës inicializohet duke përdorur __init__(). Megjithëse __init__() mund të pranojë çdo numër parametrash, vetvetja është gjithmonë parametri i parë.
Një referencë për shembullin aktiv të klasës përfshihet në vetë-argumentim. Parametri "self", i cili lidhet me adresën e objektit aktual të një klase dhe na jep akses në të dhënat e variablave të tij (të objektit), nënkupton këtë.
Shembull 1
Ne krijuam një klasë të quajtur Parrot në kodin e mësipërm. Më pas, përcaktohen vetitë. Karakteristikat e një sendi janë vetitë e tij. Funksioni __init__ i klasës është vendi ku specifikohen këto karakteristika.
Kur formohet një objekt, metoda e inicializuesit është ajo që thirret fillimisht. Më pas, krijohen shembuj të klasës Parrot. Blaze dhe Wonda në këtë rast janë referenca (vlera) për objektet tona të reja. __class .species na lejon të aksesojmë atributin class.
Çdo shembull i një klase ka të njëjtat karakteristika. Karakteristikat e shembullit mund të arrihen gjithashtu duke përdorur blaze.name dhe blaze.age. Megjithatë, të gjitha rastet e një klase kanë atribute unike të shembullit.
Shembull 2
Metodat
Funksionet e përcaktuara brenda trupit të një klase quhen metoda. Ato përdoren për të specifikuar se si do të sillet një artikull.
Dy metoda, sing() dhe dance, janë përcaktuar në aplikacionin e lartpërmendur (). Për shkak se ato thirren në një objekt shembulli, siç është flaka, këto quhen metoda të shembullit.
Bazat e konceptit OOPS
Katër idetë kryesore të programimit të orientuar nga objekti janë:
- Trashëgim
- encapsulation
- Polimorfizmi
- abstragim
Trashëgim
Njerëzit shpesh u thonë të porsalindurve se kanë karakteristika të fytyrës që ngjajnë me ato të prindërve të tyre ose se kanë trashëguar tipare të veçanta nga prindërit e tyre.
Është e mundur që edhe ju të keni vërejtur se ndani disa karakteristika me prindërit tuaj. Situata në botën reale është gjithashtu mjaft e ngjashme me trashëgiminë.
Megjithatë, në këtë rast, karakteristikat e "klasave të prindërve" kalojnë në "klasat e fëmijëve". Këto aspekte referohen si "veti" dhe "metoda" në këtë kontekst.
Një klasë mund të nxjerrë metodat dhe atributet e saj nga një klasë tjetër duke përdorur teknikën e njohur si trashëgimi. Trashëgimia është procesi i një klase fëmijë që merr vetitë e një klase prind.
Shembull:
Klasa prind Human trashëgohet nga klasa e fëmijës Boy në shembullin e mësipërm. Për shkak se Boy po trashëgon nga Human, ne mund të aksesojmë të gjitha metodat dhe atributet e tij kur krijojmë një shembull të klasës Boy.
Në klasën Boy, është përcaktuar edhe një metodë e quajtur schoolName. Objekti i klasës prind nuk është në gjendje të aksesojë metodën schoolName. Megjithatë, metoda schoolName mund të thirret duke krijuar një objekt të klasës së fëmijës (Boy).
encapsulation
Dhënia e çdo variabli në program akses global nuk është një veprim i mençur kur punoni me klasa dhe trajtoni të dhëna të ndjeshme.
Pa i dhënë programit akses të plotë në asnjërën prej atyre variablave, kapsulimi na siguron një mekanizëm për të marrë variablat e nevojshëm.
Metodat që janë përcaktuar në mënyrë eksplicite për këtë qëllim mund të përdoren për të përditësuar, modifikuar ose fshirë të dhënat nga variablat. Kjo metodë programimi ka përparësitë e sigurisë dhe kontrollit të shtuar mbi futjen e të dhënave.
Shihni se sa shpejt mund të aksesohen variablat në demonstrimin e mëposhtëm:
Polimorfizmi
Le të themi se po përdorni telefonin tuaj për të shfletuar Burimet e Instagramit. Kur ju lind dëshira për të dëgjuar pak muzikë, ju hyni në Spotify dhe filluat të luani këngën tuaj të preferuar.
Pas një kohe, ju morët një telefonatë, kështu që ndaluat çdo gjë që po bënit në sfond për t'iu përgjigjur. Miku yt thirri dhe kërkoi që t'i dërgoje mesazh në numrin e telefonit të një personi të caktuar.
Kështu që ju i dërguat atij numrin e telefonit me SMS dhe vazhduat me detyrat tuaja. Keni marrë ndonjë gjë? Me vetëm një pajisje—telefonin tuaj celular—mund të shfletoni përmes furnizimeve, të dëgjoni muzikë, të merrni dhe të bëni telefonata dhe të dërgoni mesazhe.
Prandaj, polimorfizmi është i krahasueshëm me atë. Poli do të thotë të shumta, dhe morfja tregon forma të ndryshme. Prandaj, polimorfizmi në tërësi i referohet diçkaje me forma të ndryshme.
Ose “diçka” që, në varësi të rrethanave, mund të shfaqë një sërë sjelljesh. Në OOPS, polimorfizmi përshkruan funksione me të njëjtat emra, por sjellje të dallueshme. Përndryshe, një nënshkrim i ndryshëm funksioni me të njëjtin emër funksioni (parametrat i kalojnë funksionit).
Shembull:
Këtu, ne mund të përdorim kafshën e ndryshueshme për të përsëritur objektet e Zebrës dhe Lepurit, duke përdorur metodat e tyre përkatëse të shembullit. Si rezultat, sjellja (color() & eats()) e Zebrës dhe Lepurit përfaqësohen këtu nga një ndryshore e vetme e quajtur kafshë. Prandaj është duke iu përmbajtur rregullave të polimorfizmit.
abstragim
Ju ka shumë të ngjarë të përdorni një laptop, telefon ose tablet për të lexuar këtë përmbajtje. Ndërsa e lexoni, me sa duket po mbani shënime, po nënvizoni pasazhet kryesore dhe ndoshta po ruani disa informacione në dosjet tuaja personale.
Gjithçka që mund të shihni kur lexoni këtë është një "ekran" me të dhënat që po ju shfaqen. Thjesht i shihni tastet e tastierës ndërsa shkruani, kështu që nuk duhet të shqetësoheni për hollësitë e brendshme, si p.sh. shtypja e një tasti mund të bëjë që ajo fjalë të shfaqet në ekran.
Përndryshe, si shtypja e një butoni në ekran mund të hapë një skedë të re.
Prandaj, çdo gjë që mund të vëzhgojmë në këtë situatë është abstrakte. Ne mund të shohim vetëm rezultatin që po krijon dhe jo ndërlikimet e brendshme (që në fakt kanë rëndësi për ne).
Ngjashëm me këtë, abstraksioni zbulon vetëm funksionet që posedon çdo gjë duke fshehur çdo zbatim ose detaje të brendshme.
Objektivi kryesor i Abstraction është të fshehë informacionin e sfondit dhe çdo zbatim të jashtëzakonshëm të të dhënave në mënyrë që njerëzit të shohin vetëm atë që duhet të shohin. Ndihmon në menaxhimin e kompleksitetit të kodit.
Shembull:
Një klasë abstrakte e lidhur me automjetin është e pranishme këtu. Për shkak se trashëgon nga klasa abstrakte ABC, ajo është abstrakte. Për shkak se metodat abstrakte nuk janë të përcaktuara ose mbeten bosh, klasa Vehicle ka një metodë abstrakte të quajtur no of wheels, së cilës i mungon një përkufizim.
Ata parashikojnë klasat që trashëgojnë klasat abstrakte për të dhënë zbatimin e metodës.
Përfitimet e koncepteve OOPS
- Me kapsulimin, arrihet siguria e lartë dhe privatësia e të dhënave.
- Fleksibilitet për të pasur shumë versione polimorfike të së njëjtës klasë.
- Niveli i lartë i kompleksitetit të kodit u reduktua nga abstraksioni.
- Në vend që të analizoni qindra rreshta kodi për të gjetur një problem të vetëm, modulariteti i programimit e bën të thjeshtë korrigjimin e gabimeve.
- Ripërdorimi i kodit shkaktohet nga trashëgimia e vetive të klasës prind nga një klasë fëmijë.
- Zgjidhja efektive e problemeve është e mundur sepse ne krijojmë klasa që bëjnë veprimet e nevojshme për çdo miniproblem. Problemi i mëposhtëm mund të zgjidhet edhe më shpejt pasi ne mund t'i ripërdorim ato klasa.
Përfundim
Si përfundim, mësuam rreth ideve OOPS në Python, paradigma më e nxehtë e programimit tani.
Pasi të keni lexuar këtë, duhet të keni kuptuar se paradigma OOPS merret tërësisht me idenë e klasave dhe objekteve. dhe koncepte OOPS si kapsulimi, polimorfizmi, trashëgimia dhe abstraksioni.
Lini një Përgjigju