Sõber ja kaitstud sõber VB.NET-is

Juurdepääsumuundurid (nimetatakse ka ulatuse määramise reegliteks) määravad, millise koodiga saab elemendile juurde pääseda, st millisel koodil on luba seda lugeda või sellele kirjutada. Visual Basicu varasemates versioonides oli kolme tüüpi klasse. Need on üle kantud .NET-i. Kõigis neis võimaldab .NET juurdepääsu ainult koodile:

  • Privaatne - sama mooduli, klassi või struktuuri piires.
  • Sõber - sama koosseisu piires.
  • Avalik - kõikjal ühes ja samas projektis, muudest projektile viitavatest projektidest ja projektist ehitatud montaažist. Teisisõnu, iga kood, mis selle leiab.

VB.NET on lisanud ka poolteist uut.

  • Kaitstud
  • Kaitstud sõber

"Pool" on sellepärast, et kaitstud sõber on kombinatsioon uuest kaitstud klassist ja vanast sõbra klassist.

Kaitstud ja kaitstud sõbra modifikaatorid on vajalikud, kuna VB.NET rakendab viimast OOP nõuet, mis puudus VB-st: Pärimine.

Enne VB.NET-i oleks ülivõrdesed ja põlglikud C ++ ja Java programmeerijad VB-d halvustada, kuna see oli nende sõnul "mitte täielikult objektorienteeritud". Miks? Varasematel versioonidel puudus pärand. Pärimine võimaldab objektidel jagada oma liideseid ja / või teostust hierarhias. Teisisõnu, pärand võimaldab ühe tarkvaraobjekti, mis võtab üle kõik teise meetodid ja omadused.

instagram viewer

Seda nimetatakse sageli "on-a" suhteks.

  • Veoauto on "sõiduk".
  • Ruudukujuline "on-a" kuju.
  • Koer "on-imetaja".

Idee on, et üldisemad ja laialdasemalt kasutatavad meetodid ja omadused määratletakse "vanema" klassidena ja neid täpsustatakse "lapse" klassides (mida sageli nimetatakse alamklassideks). "Imetaja" on üldisem kirjeldus kui "koer". Vaalad on imetajad.

Suur eelis on see, et saate oma koodi korraldada, nii et peate kirjutama ainult koodi, mis teeb midagi sellist, mida paljud objektid peavad üks kord vanema juures tegema. Kõigil töötajatel peab olema neile antud töötaja number. Lapse klassidesse võib kuuluda täpsem kood. Ainult töötajatel, kes töötavad üldkontoris, peab neile olema määratud töötaja uksekaardi võti.

See uus pärandivõime nõuab siiski uusi reegleid. Kui uus klass põhineb vanal, on kaitstud juurdepääsu modifikaator, mis kajastab seda suhet. Kaitstud koodile pääseb juurde ainult samast klassist või sellest klassist tuletatud klassist. Te ei soovi, et töötajate uksekaartide võtmeid omistataks kellelegi peale töötajate.

Nagu märgitud, on kaitstud sõber nii sõbra kui ka kaitstud juurdepääsu kombinatsioon. Koodielementidele pääseb juurde kas tuletatud klassidest või samast koosseisust või mõlemast. Kaitstud sõpra saab kasutada klasside raamatukogude loomiseks, kuna kood, millele on juurdepääs ainult teie koodil, peab olema samas komplektis.

Kuid ka sõbral on see juurdepääs, nii et miks te kasutaksite kaitstud sõpra? Põhjus on see, et sõpra saab kasutada lähtefailis, Nimeruum, Liides, Moodul, klass või struktuur. Kuid kaitstud sõpra saab kasutada ainult klassis. Kaitstud sõber on see, mida vajate oma objektikogude loomiseks. Sõber on mõeldud keerulisteks koodolukordadeks, kus tõepoolest on vaja kogu juurdepääsu laiale juurdepääsule.

instagram story viewer