Di nav pêşdebiran de, bernameya objekt-oriented şopînerek berbiçav kişandiye. Zimanê kompîturê yê populer Python jî bi paradîgmaya objekt-oriented ve girêdayî ye.
Ew bi danasîna tişt û çînên li Python re mijûl dibe, ku bingehê prensîbên OOPs pêk tîne. Di vê dersê de li ser "bernamesazkirina nesne-oriented li Python," hûn ê fêr bibin ka meriv çawa dersên Python ragihîne, ji wan tiştan biafirîne, û çar teknîkên OOP-ê bikar bîne.
Ji ber vê yekê, yekem yekem.
Bernamesaziya Objekt-Oriented Çi ye?
Armanca sereke ya bernamesaziya obje-oriented (OOP) afirandina "objeyan" e. Komek ji guhêrbar û fonksiyonên bi hev ve girêdayî nesneyekê pêk tîne.
Van guherbaran bi gelemperî wekî taybetmendiyên objeyê têne binav kirin, û tevgerên wê bi gelemperî wekî fonksiyonên wê têne binav kirin. Van tiştan serîlêdanê avahiyek bi bandortir û têgihîştî peyda dikin. Otomobîl mînakek e.
Ger otomobîl hêmanek bûya, dê taybetmendiyên wê yên wekî reng, model, biha, marqe û hwd hebin. Wekî din, ew ê lez bikira, hêdî hêdî bihata guheztin.
Nimûneyek din: Ger em kûçikek wekî tiştek bifikirin, hin taybetmendiyên wî dibe ku reng, nijad, nav, giranî û hwd. Û ew ê li dora xwe digere, diqelişe, dileyze, hwd.
Ji ber ku ew têgînên cîhana rastîn ên mîna nesne, veşartin, mîras û hwd di bernamekirinê de vedihewîne, bernamesaziya objekt-oriented baş tê zanîn. Ji ber ku ew bi rewşên cîhana rastîn re pir dişibihe, dîtbarî hêsantir tê çêkirin.
Têgehên Programming Object-Oriented
Di Python de çîn û tiştên
Mîna hemî zimanên din ên objekt-oriented, Python dihêle hûn çînên sêwirandî bikin ku tiştan çêbikin. Cûreyên daneya herî populer ên di Python de, di nav de rêzik, navnîş, ferheng û tiştên din jî, çînên çêkirî ne.
Çîn komek ji rêbazên girêdayî û guhêrbarên nimûneyê ye ku celebek diyardeyek diyar dike. Çînek dikare wekî model an şablonek ji bo tiştek were dîtin. Guherbarên ku çînekê pêk tînin wekî taybetmendî têne zanîn.
Tiştek endamek çînek e ku xwedan komek taybetmendiyek diyarkirî ye. Ji ber vê yekê, her jimarek tiştan dikare bi karanîna heman polê were afirandin.
Dersên Python bi karanîna peyva class têne diyar kirin, ku dûv re navê polê û kolonek tê peyda kirin. Nîşanek dersa parrot dibe ku ev be:
Li vir, em sinifa vala Parrot bi karanîna peyva klavyeyê radigihînin. Em ji dersan mînakan diafirînin. Nimûne tiştek taybetî ye ku ji çînek diyarkirî hatî çêkirin. 'derbas' bi gelemperî ji bo koda ku em dikarin ji bo vê gavê dev ji cîbicîkirina wê berdin, wekî rawestgehek tê bikar anîn. Em dikarin koda Python-ê bêyî ku xeletiyek bikar bînin bi karanîna keyworda "derbas" bicîh bikin.
Vebijêrkek çînek bi objeyek (mînakek) encam dide. Dema ku çînek çêbibe tenê ravekirina tiştan tê destnîşankirin. Wekî encamek, hilanîn an RAM nayê veqetandin.
Nimûneyek ji tiştên çîna parrot ev e:
Obj di vê nimûneyê de tiştek çîna Parrot e.
Ka em bibêjin ku em di derheqê papagan de taybetmendiyên xwe dizanin. Naha em ê nîşan bidin ka meriv çawa çîna parrot û tiştên wê çawa diafirîne.
Rêbaza Taybet (__destpêk__)
Rêbazek bi navê init taybetmendiyên ku divê her tiştê Parrot hebe () destnîşan dike. Dema ku hêmanek Parrotek nû çêdibe, fonksiyona __init__ bi danasîna nirxên ku em di nav taybetmendiyên objektê de peyda dikin, rewşa destpêkê ya objektê diafirîne.
Ji ber vê yekê, her mînakek nû ya polê bi karanîna __init__() ve tê destpêkirin. Her çend __init__() dikare hejmareke pîvanan qebûl bike jî, xwe her gav pîvana yekem e.
Referansek ji mînaka çîna çalak re di nav xwe-argumana de tê de heye. Parametreya xweser, ku bi navnîşana mebesta heyî ya çînekê ve girêdide û gihandina daneyên guhêrbarên wê (objeyê) dide me, vê yekê nîşan dide.
1
Me di koda jorîn de çînek bi navê Parrot ava kir. Piştre, taybetmendî têne diyarkirin. Taybetmendiyên tiştekî taybetiyên wê ne. Fonksiyona __init__ ya polê cihê ku ev taybetmendî têne diyar kirin e.
Dema ku objeyek çêdibe, rêbaza destpêker ew e ku di destpêkê de jê re tê gotin. Dûv re, mînakên çîna Parrot têne afirandin. Blaze û Wonda di vê nimûneyê de referans (nirx) ji tiştên me yên nû re ne. __class .species destûrê dide me ku em xwe bigihînin taybetmendiya polê.
Her mînakek çînek xwedî heman taybetmendiyan e. Dibe ku taybetmendiyên nimûneyê jî bi karanîna blaze.name û blaze.age ve werin gihîştin. Lêbelê, hemî mînakên çînekê taybetmendiyên nimûneyek yekta ne.
2
Rêbaz
Fonksiyonên ku di hundurê laşê çînekê de têne diyar kirin rêbaz têne gotin. Ew têne xebitandin ku diyar bikin ka dê çawa tevbigere.
Du rêbaz, stran () û dans, di serîlêdana jorîn () de têne destnîşan kirin. Ji ber ku ew li ser objeyek nimûneyê têne gazî kirin, wekî flame, ev wekî rêbazên nimûne têne binav kirin.
Bingehên konsepta OOPS
Çar ramanên bingehîn ên bernamesaziya objekt-oriented ev in:
- Mîratî
- Encapsulation
- Pirzimanî
- Abstraction
Mîratî
Mirov bi gelemperî ji zarokên nûbûyî re dibêjin ku taybetmendiyên rûyê wan dişibin yên dêûbavên wan an ku wan taybetmendiyên taybetî ji dêûbavên xwe mîras wergirtine.
Dibe ku we jî dît ku hûn bi dêûbavên xwe re çend taybetmendiyan parve dikin. Rewşa cîhana rastîn bi mîrasî re jî dişibihe.
Lêbelê, di vê rewşê de, taybetmendiyên "çînên dêûbav" ji "çînên zarokan" re derbas dibin. Ev alî di vê çerçoveyê de weke "taybet" û "rêbaz" tên binavkirin.
Çînek bi karanîna teknîka ku wekî mîras tê zanîn dikare rêbaz û taybetmendiyên xwe ji çînek din bigire. Mîras pêvajoyek e ku çîna zarok taybetmendiyên çîna dêûbav werdigire.
Mînak:
Di mînaka li jor de çîna dê û bav Human ji çîna zarokê Boy re tê mîras kirin. Ji ber ku Boy ji Mirovan mîras digire, dema ku em mînakek çîna Boy biafirînin em dikarin bigihîjin hemî rêbaz û taybetmendiyên wê.
Di dersa Boy de, rêbazek bi navê schoolName jî hatiye diyarkirin. Tişta çîna dêûbav nikare xwe bigihîne rêbaza schoolName. Lêbelê, rêbaza schoolName dikare bi afirandina objeyek pola zarokan (Boy) were gazî kirin.
Encapsulation
Di bernameyê de dayîna her guhêrbarek gihîştina gerdûnî ne tevgerek aqilmend e dema ku bi dersan re dixebitin û daneyên hesas digirin.
Bêyî ku bernameyê bigihîje yek ji wan guhêrbaran, enfalkirin mekanîzmayek peyda dike ku em guhêrbarên pêwîst bi dest bixin.
Rêbazên ku ji bo mebestê bi eşkere hatine destnîşankirin dikarin ji bo nûvekirin, sererastkirin an jêbirina daneyan ji guherbaran werin bikar anîn. Ev rêbaza bernamekirinê avantajên ewlekarî û kontrolkirina zêde ya li ser têketina daneyê heye.
Binêrin ka çiqas zû guhêrbar dikarin di xwenîşandana jêrîn de bigihîjin:
Pirzimanî
Ka em bibêjin ku hûn têlefona xwe bikar tînin da ku li ser bigerin Feeds Instagram. Dema ku we xwest ku hûn guhdariya muzîkê bikin, we xwe gihand Spotify û dest bi lêdana strana xweya bijare kir.
Piştî demekê, we bangek wergirt, ji ber vê yekê we her tiştê ku we di paşerojê de dikir rawestand da ku hûn bersiv bidin. Hevalê te telefon kir û daxwaz kir ku tu ji wan re jimareya têlefonê ya kesek diyar bikî.
Ji ber vê yekê we ji wî re jimareya têlefonê bi SMS-ê şand û karên xwe domand. Ma we tiştek hilgirtiye? Bi tenê yek amûrek -telefona xweya desta- hûn dikarin li ser feedan bigerin, li muzîkê guhdarî bikin, telefonê bigirin û bikin û peyaman bidin.
Ji ber vê yekê, pirmorfîzm bi wê re tê berhev kirin. Poly tê wateya gelek, û morph formên cihêreng destnîşan dike. Ji ber vê yekê, pirmorfîzm bi tevahî tiştek bi celebên cihêreng vedibêje.
An jî "tiştek" ku, li gorî rewşê, dikare cûrbecûr tevger nîşan bide. Di OOPS de, polîmorfîzm fonksiyonên bi heman navan lê tevgerên cihêreng vedibêje. Wekî din, îmzeyek fonksiyonek cûda bi heman navê fonksiyonê (parametreyên ku ji fonksiyonê re derbas bûne).
Mînak:
Li vir, em dikarin heywanê guhêrbar bikar bînin da ku li ser tiştên Zebra û Kîroşkê dubare bikin, bi karanîna rêbazên nimûneyên wan ên têkildar. Wekî encamek, tevgera (reng() & xwarin()) ya Zebra û Kîroşkê li vir bi yek guhêrbarek bi navê heywan tê temsîl kirin. Ji ber vê yekê ew bi qaîdeyên polîmorfîzmê ve girêdayî ye.
Abstraction
Hûn bi îhtîmalek mezin laptop, têlefon, an tabletek bikar tînin da ku vê naverokê bixwînin. Dema ku hûn wê dixwînin, hûn di heman demê de tê texmîn kirin ku hûn nîşeyan digirin, binê beşên sereke xêz dikin, û dibe ku hin agahdarî di pelên xweyên kesane de hilînin.
Dema ku hûn vê dixwînin hemî ku hûn dikarin bibînin "ekranek" e bi daneyên ku ji we re têne xuyang kirin. Dema ku hûn dinivîsin, hûn tenê bişkokên klavyeyê dibînin, ji ber vê yekê hûn neçar in ku ji hûrguliyên hundurîn xeman bibin, mîna ku bişkojkek çawa dikare bibe sedem ku ew peyv li ser ekranê xuya bibe.
Alternatîf, çawa pêlkirina bişkokek li ser ekrana we dikare tabloyek nû bide destpêkirin.
Ji ber vê yekê, tiştê ku em dikarin di vê rewşê de temaşe bikin razber e. Em tenê dikarin encama ku ew diafirîne û ne tevliheviyên hundurîn (yên ku bi rastî ji me re girîng in) bibînin.
Bi vî rengî, abstraction tenê fonksiyonên ku her tişt xwedan e diyar dike dema ku her pêkanîn an hûrguliyên hundurîn vedişêre.
Armanca sereke ya Abstraction ew e ku agahdariya paşîn û her pêkanîna daneya derveyî veşêre da ku mirov tenê tiştê ku hewce dike bibînin bibînin. Ew di birêvebirina tevliheviya kodê de dibe alîkar.
Mînak:
Li vir çînek abstrakt a girêdayî wesayîtê heye. Ji ber ku ew ji çîna razber ABC mîras digire, ew razber e. Ji ber ku rêbazên razber nayên danasîn an jî vala dimînin, çîna Wesayît xwedan rêbazek abstrakt e ku jê re tê gotin no of wheels ku pênaseyek wê tune ye.
Ew çînên ku çînên razber mîras digirin pêşbînî dikin ku pêkanîna rêbazê bidin.
Feydeyên têgehên OOPS
- Bi encapsulkirinê, ewlehiya bilind û nepeniya daneyê têne bidestxistin.
- Zelalbûn di hebûna gelek guhertoyên polîmorfîk ên heman polê de.
- Asta bilind a tevliheviya kodê ji hêla abstractionê ve kêm bû.
- Li şûna ku meriv bi sedan rêzikên kodê bişopîne da ku pirsgirêkek yekane bibîne, modularbûna bernamekirinê xeletkirinê hêsan dike.
- Ji nû ve karanîna kodê ji hêla mîrasiya çîna zarokê ya taybetmendiyên çîna dêûbav ve dibe sedema.
- Çareserkirina pirsgirêkê ya bi bandor mimkun e ji ber ku em çînên ku ji bo her piçûk-pirsgirêkek tevgerên pêwîst dikin diafirînin. Pirsgirêka jêrîn hê zûtir dikare were çareser kirin ji ber ku em dikarin wan dersan ji nû ve bikar bînin.
Xelasî
Di encamnameyê de, me di Python de, paradîgmaya herî germ a bernamekirinê ya nuha, fêrî ramanên OOPS bûn.
Piştî xwendina vê, pêdivî ye ku we fêm kir ku paradîgmaya OOPS bi tevahî bi ramana çîn û tiştan re mijûl dibe. û têgehên OOPS yên wekî encapsulation, polymorphism, mîrasî, û abstraction.
Leave a Reply