Kompjûters, Programming
PLO - wat is dit? De grûnslaggen fan de foarwerp-rjochte programmearring
Wêrom object-oriented programmearring hat de foarkar yn de measte projekten? PLO biedt in effektive wize om te gean mei harren kompleksiteit. Yn stee fan it behanneljen fan in programma as in opienfolging fan útfierbere ynstruksjes, dy is it as in groep fan objekten mei bepaalde eigenskippen en produsearje se mei bepaalde aksjes. Dit resultearret yn in dúdliker, mear betrouber en legkosoprovozhdaemyh applikaasjes.
De grûnslaggen fan de foarwerp-rjochte programmearring (oop) foarme omdat beheinings binne fûn yn foarskoalske besteande oanpak. Ûnder harren - ûnbeheinde tagong ta de gegevens en in grut tal links, dy't oplizze beheinings oan de feroaring. Harren bewustwêzen en oarsaken fan belang om te begripen wat oop programmearring en wat binne syn foardielen.
prosedurele talen
C, Pascal, Fortran, en ferlykbere talen binne prosedurele. Dat is, elts fan de eksploitant fertelt it kompjûter te dwaan wat: om de gegevens, optelle de nûmers, ûnderferdield yn seis, it resultaat werjûn. Oanhingsel prosedurele taal is ynstruksjetaal list. As it is lyts, gjin oar organizing prinsipe (faak oantsjut as in paradigma) is net fereaske. De programmeur soarget foar in list fan ynstruksjes, en de kompjûter fiert se.
Skieden fan funksjes
As applikaasjes wurden mear omslachtich list fan bochten. Pear kin begripe mear as in pear hûndert ynstruksjes oant se wurde groepearre. Om dy reden, de funksje wie de manier om de applikaasje mear begripen oan syn makkers. Yn guon talen, deselde konsept kin neamd wurde Subroutines of prosedueres.
De app is ferdield yn funksjes, elk wêrfan't hat in dúdlik omskreaun doel en ynterface.
It idee fan 'e skieding fan prosedueres kinne wurde útwreide yn in gruttere groepearring fan foarwerp neamd in module, mar it prinsipe is analogous: de groepearring fan komponinten dy't drage listen fan dokumint.
Skieden fan funksjes en modulen - ien fan 'e hoeke stiennen fan strukturearre programmearring, dy't foar inkele desennia oant de PLO wie it foarmet paradigma.
strukturearre programming problemen
As applikaasjes wurde grutter, strukturearre programmearring begjint te ûnderfine swierrichheden. Projects wurden te kompleks. ferlein graphics. It giet om in grut oantal programmeurs. De kompleksiteit hat groeid. Kosten shooting omheech, it skema waard ferskood fierder, en dêr kaam it ynstoarten.
Analyze fan oarsaken oan mislearre ferretten tekoartkommings prosedurele paradigma. Nettsjinsteande hoe goed strukturearre ymplemintearre Programming oanpak, grutte applikaasjes wurden al te kompleks.
Wat binne de oarsaken fan dy problemen ferbûn mei prosedurele talen? Earst, de funksjes hawwe ûnbeheinde tagong ta globale gegevens. Twad, unrelated prosedueres en minne wearden simulate de echte wrâld.
As wy beskôgje dy saken yn it ramt fan ynventarisearjen boekhâlding software, ien fan de meast wichtige eleminten fan de globale gegevens is in set fan SKUs. Ferskate funksjes kin ferwize nei harren te fieren in nije wearde, it is werjûn, wizigingen en sa. D.
ûnbeheinde tagong
It programma skreaun, bygelyks, yn C, binne der twa soarten fan gegevens. Lokaal ferstoppe binnen de funksje en oare prosedueres wurde net brûkt.
As twa of mear funksjes hawwe tagong ta deselde gegevens, de lêste kinne wêze globale. Sokke, bygelyks, wurde rekken holden ynformaasje oer de ûnderwerpen. De globale gegevens kin gjin beskikber proseduere.
Yn in grutte programma, der binne in soad funksjes en in protte globale eleminten. It probleem fan 'e proseduerefout paradigma is dat it liedt ta in grutter tal potinsjele links tusken harren.
Sa'n grut oantal ferbinings feroarsaket ferskate swierrichheden. Earst, dat complicates it begryp fan 'e struktuer fan it programma. Twads, dreech te feroarjen. Wiziging yn de globale gegevens item kin nedich oanpassing fan alle funksjes dy't hawwe tagong ta it.
Bygelyks, yn it programma ceiling immen beslút dat rekkene foarwerp koade moat bestean net fan 5 sifers, en fan 12. Dit sil fereaskje in wiziging de gegevens type fan koart nei lang. No ferbûn mei de funksje koade moat oanpast wurde om te wurkjen mei de nije yndieling.
As de eleminten binne feroare yn in gruttere applikaasje, is it dreech te sizzen hokker prosedueres hawwe tagong ta harren. Mar ek at dizze figuer, feroarjen se kin resultearje yn ferkearde operaasje mei oare globale gegevens. Alles wurdt ferbûn mei al it oare, dus in feroaring op ien plak backfire yn in oar.
Modeling de echte wrâld
De twadde en wichtiger probleem fan 'e proseduerefout paradigma is dat de lizzing spesifike gegevens en funksjes slecht simulearret de dingen yn de echte wrâld. Hjir binne wy te krijen mei objekten lykas minsken of auto 's. Se binne as gjin gegevens of de funksje. Kompleks real-world objekten hawwe attributen en gedrach.
attributen
Foarbylden fan attributen (soms neamd eigenskippen) foar de minsken binne each kleur en de namme fen 'e post, foar in auto - de krêft en it oantal doarren. Sa die bliken út, de attributen fan 'e echte wrâld lykweardich oan de gegevens yn it programma. Se hawwe spesifike wearden, lykas blau (kleur fan 'e eagen) of fjouwer (it oantal doarren).
gedrach
Gedrach - is dat echte-world foarwerpen wurde produsearre nei oanlieding fan wat soarte fan ynfloed. As jo freegje in baas foar salaris ferheging, it antwurd is "ja" of "nee." As jo drukke op 'e rem, de auto sil ophâlde. En it kearen fan it wurd naam gedragingen binne foarbylden. Gedrach fergelykber mei de proseduere: it is neamd om te dwaan wat, en it docht dus. Sa, de gegevens en funksjes troch harsels net model echte-wrâld foarwerpen effisjint.
addressing
It foarwerp yn oop wurdt fertsjintwurdige as in set fan gegevens en funksjes. Allinnich de prosedueres dy't neamd lid funksjes yn C ++, stean te krijen syn wearde. Dy wurde ferburgen en beskerme fan feroaringen. Betsjuttingen en funksjes wurde ynkapsele yn ien. Encapsulation en upryatyvanie - basis termen yn 'e beskriuwing fan' e foarwerp-rjochte talen.
As jo wolle feroarje de data, dat wit presys wat funksjes ynteraksje mei harren. Gjin oare prosedueres kinne gjin tagong se. Dit simplifies skriuwen, debuggen, en ûnderhâlden fan de programma.
In programma meastal bestiet út ferskate objekten dy't omgean mei elkoar, wêrtroch de lid funksjes.
Hjoed, de meast brûkte taal oop (object-oriented programmearring) - C ++ (plus plus). Yn Java mist wat funksjes lykas pointers, sjabloanen en meardere erfskip, dy't makket dat minder machtige en alsidich as C ++. C # noch net berikt de populariteit fan C ++.
Dêrby moat opmurken wurde dat saneamde lid funksjes yn C ++ neamd metoaden yn guon oare object-oriented talen lykas Smalltalk. De gegevens items binne neamd attributen. Ropt in metoade fan it foarwerp is stjoeren him berjochten.
analogy
Jo kinne yntinke de objekten fan 'e bedriuw ôfdielings. Yn de measte organisaasjes, meiwurkers wurkje net ien dei mei it personiel, de folgjende overcharging salaris, en dan in wike dwaande hâlde mei de detailhannel hannel. Eltse ôfdieling hat in eigen personiel, mei dúdlik tawiisd plichten. Der binne in eigen gegevens: yndikatoaren fan lean, ferkeap, goed personiel, ensfh Minsken yn 'e ôfdielings wurkje mei harren ynformaasje ... De ferdieling fan it bedriuw, dêrom, fasilitearret de kontrôle fan syn wurksumheden kriget en ûnderhâldt gegevens yntegriteit. Accounting is ferantwurdlik foar de Payroll. As jo wolle witte it totale bedrach fan leanen betelle oan de súdlike tûke yn july, net nedich om ferdjipje har yn it argyf. It is genôch te stjoeren in notysje oan de ferantwurdlike persoan, wachtsje oant dy persoan hat tagong ta de gegevens en stjoert de reaksje op de frege ynformaasje. Dat soarget der foar it neilibjen fan regeljouwing en it ûntbrekken fan eksterne hinderjen. Yn 'e selde wize in foarwerp yn de PLO jout organisaasje applikaasje.
Dêrby moat betocht wurde dat de oriïntaasje fan de foarwerpen net fan tapassing op details fan it wurk programma. De measte ynstruksjes C ++ eksploitanten komt oerien mei de prosedurele talen lykas C. Yn feite, it lid funksjes yn C ++ binne tige te ferlykjen mei funksjes yn C. Allinne de bredere kontekst sil tastean fêst te stellen oft de ynstruksje prosedurele of foarwerp-rjochte.
It objekt yn oop: Definition
As by it probleem fan de programmearring yn it foarwerp-rjochte taal ynstee fan fragen oer syn yndieling yn aparte funksjes is in probleem yn 'e ôfskieding foarsjennings. Oop tinken is folle makliker te ûntwikkeljen applikaasjes. Dat komt troch de gelikensens fan 'e software en echte objekten.
Hokker saken binne objekten yn oop? Hjir binne in pear typyske kategoryen.
Fysyk foarwerp yn oop - is:
- ferfier flow modellen;
- elektryske komponinten yn it circuit design 's;
- it lân ekonomy model;
- fleanmasines yn de loft ferkear kontrôle systeem.
Eleminten fan it miljeu de brûker fan kompjûter:
- menu;
- finsters;
- Graphics (line, rjochthoeke, sirkel);
- toetseboerd, mûs, printer, skiif driuwfearren delsette woe.
minsken:
- wurknimmers;
- studinten;
- klanten;
- ferkeapers.
ynformaasje:
- boek keeping;
- in eigen saak;
- wurdboek;
- tafel fan breedtegraden en longitudes fan delsettingen.
Kommunikaasje fan de echte wrâld foarwerpen en de PLO wie it gefolch fan in kombinaasje fan funksjes en gegevens se hawwe revolutionized de programmearring. Sa'n close wedstriid yn prosedurele talen dêr.
klasse
Objekten yn 'e PLO - in klasse lid. Wat moat dat wurde? Programming talen hawwe ynboude gegevens typen. Type int, t. E. in hiel getal dat wurdt foarbeskaaide yn C ++. Jo kinne ferklearje eltse oantal int fariabelen.
Sa ek in mearfâldichheid fan objekten definiearre troch ien klasse. It definiearret de funksjes en de gegevens opnaam yn syn foarsjennings, net meitsjen fan har, likegoed as in int hat net oanmeitsje fariabelen.
Klasse yn de PLO - in beskriuwing fan in tal ferlykbere foarwerpen. Prins, Sting en Madonna binne de sjongers. Der is gjinien troch dy namme, mar minsken kinne neamd wurde sa, as se hawwe it passend skaaimerken. Oop object - dit eksimplaar.
erfenis
Yn it libben, klassen wurde ûnderferdield yn subclasses. Bygelyks, bisten wurde ûnderferdield yn amfibyen, sûchdieren, fûgels, ynsekten ensafuorthinne. D.
It prinsipe fan dit soarte fan ferdieling is dat elke subklasse hat mienskiplike skaaimerken mei de klasse dêr't de. Alle auto 's hawwe tsjillen en in motor. Dit is de karakteristike eigenskippen fan 'e reauwen. Neist de algemiene skaaimerken fan elke subklasse hat syn eigen skaaimerken. Der binne in soad bus sitten en frachtweinen hawwe de romte te dragen swiere loads.
Sa ek in basis klasse kin in Subklasse parent ferskate derivaten dy't meie wurde definiearre sadat sy sille diele syn eigen skaaimerken mei de tafoeging. Erfenis lykas funksjes, ferienfâldiging fan prosedurele programma. As ferskate dielen fan de koade dogge sa'n bytsje it selde, kinne jo útpakke de mienskiplike eleminten en sette se yn ien proseduere. Trije programma gebiet kin belje de funksje te útfiere mienskiplike aksjes, mar se kinne produsearje en syn eigen bedriuwsfiering. Sa ek de basis klasse befettet ynformaasje mienskiplik ta de groep fan derivaten. In soartgelikense funksje ferminderet it erfskip fan foarwerp-rjochte programma en dúdlikens oer de relaasje fan har eleminten.
recycling
Sadree't de klasse wurdt makke en debugged, kin oerdroegen wurde oan oare programmeurs te opnij yn jo eigen applikaasjes. It is as in bibleteek fan funksjes dy't kin opnommen wurde yn ferskillende applikaasjes.
Yn oop, erfskip is yn it ferlingde fan it idee fan meardere gebrûk. Ut in besteand klasse, sûnder feroarjen is, kinne wy foarmje in nije ien mei tafoeging fan oare funksjes. It gemak fan it opnij brûken fan besteande software - in wichtich foardiel fan de PLO. Der wurdt fan útgien dat it jout in tanimmend profitability fan de earste ynvestearrings.
It kreëarjen fan nije gegevens typen
Fasiliteiten geskikt foar it ta stân kommen fan nije gegevens typen. Stel in programma brûkt twadiminsjonale wearden (bgl Coordinates of breedtegraad en lingtegraad), en hawwe in winsk te drukken de aksje fan arithmetic op harren:
position1 = posysje + komôf,
dêr't position1, posysje en komôf - in pear ûnôfhinklik numerike wearden. It meitsjen fan in klasse dy't heart ek dizze beide wearden, en fariabele ferklearrings fan syn foarwerpen ûntstiet in nije gegevens type.
Polymorphism, overloading
Oanbieders = (gelikense), en + (plus) brûkt yn arithmetic mindere boppe net hannelje likegoed as in ynboude typen, lykas int. Posysje foarwerpen, en oaren. Binne net foarbeskaaide en set troch software. Hoe dizze eksploitanten witte hoe't omgean se? It antwurd leit yn it feit dat nije gedragingen kinne wurde ynsteld foar harren. Dy wurksumheden sille wêze lid funksjes Klasse Posysje.
Mei help fan operators of prosedueres ôfhinklik fan wat se wurkje hjit polymorphism. Wannear't der in operator, lykas + of =, krijt de gelegenheid om te wurkjen mei de nije gegevens type, dan seit dat it wurdt oerladen. Overload yn de PLO - in soarte fan polymorphism. It is syn wichtige funksje.
In boek oer de PLO "Object-rjochte Programming foar Dummies" sil tastean elkenien oan 'e kunde komme mei dizze ûnderwerp yn mear detail.
Similar articles
Trending Now