Prieten și prieten protejat în VB.NET

Modificatorii de acces (numite și reguli de extindere) determină ce cod poate accesa un element - adică ce cod are permisiunea să-l citească sau să-l scrie. În versiunile anterioare ale Visual Basic, existau trei tipuri de clase. Acestea au fost transmise către .NET. În fiecare dintre acestea, .NET permite accesul numai la cod:

  • Privat - în cadrul aceluiași modul, clasă sau structură.
  • Prieten - în cadrul aceleiași adunări.
  • Public - oriunde în același proiect, de la alte proiecte care fac referire la proiect și de la orice ansamblu construit din proiect. Cu alte cuvinte, orice cod care îl poate găsi.

VB.NET a adăugat, de asemenea, unul și jumătate noi.

  • Protejat
  • Prieten protejat

„Jumătatea” se datorează faptului că prietenul protejat este o combinație între noua clasă protejată și clasa veche a prietenului.

Modificatorii prietenilor protejați și protejați sunt necesari, deoarece VB.NET implementează ultima cerință OOP pentru care VB lipsea: Moştenire.

Înainte de VB.NET, programatorii C ++ și Java disprețuitori și disprețuitori ar reduce VB, deoarece, potrivit lor, „nu era pe deplin orientat spre obiect”. De ce? Versiunile anterioare nu aveau moștenire. Moștenirea permite obiectelor să își partajeze interfețele și / sau implementarea într-o ierarhie. Cu alte cuvinte, moștenirea face posibilă un obiect software care preia toate metodele și proprietățile altuia.

instagram viewer

Aceasta este adesea numită relația „este-a”.

  • Un vehicul "este-un" vehicul.
  • Un pătrat „este-o” formă.
  • Un câine "este-un" mamifer.

Ideea este că metodele și proprietățile mai generale și utilizate pe scară largă sunt clasele „părinte” definite și acestea sunt mai specifice în clasele „copil” (adesea numite subclase). „Mamalul” este o descriere mai generală decât „câinele”. Balenele sunt mamifere.

Marele beneficiu este că vă puteți organiza codul, astfel încât nu trebuie decât să scrieți cod care face ceva ce o mulțime de obiecte trebuie să facă o singură dată în părinte. Toți „angajații” trebuie să li se atribuie un „număr de angajați”. Un cod mai specific poate face parte din clasele pentru copii. Doar angajații care lucrează în biroul general trebuie să li se atribuie o cheie a cardului ușii angajaților.

Această nouă capacitate de moștenire necesită, totuși, noi reguli. Dacă o clasă nouă se bazează pe una veche, Protected este un modificator de acces care reflectă această relație. Codul protejat poate fi accesat doar din cadrul aceleiași clase sau dintr-o clasă derivată din această clasă. Nu doriți ca cheile cardului ușii angajaților să fie atribuite nimănui, cu excepția angajaților.

După cum sa menționat, Protected Friend este o combinație a accesului atât al Prietenului cât și al Protected. Elementele de cod pot fi accesate fie din clase derivate, fie din cadrul aceluiași ansamblu, sau din ambele. Protected Friend poate fi folosit pentru a crea biblioteci de clase, deoarece codul care vă accesează codul trebuie să fie doar în același ansamblu.

Dar Friend are și acel acces, de ce ai folosi Protected Friend? Motivul este că Friend poate fi folosit într-un fișier sursă, namespace, Interfață, Modul, clasă sau structură. Dar Protected Friend poate fi folosit doar într-o clasă. Prietenul protejat este ceea ce aveți nevoie pentru construirea propriilor biblioteci de obiecte. Prieten este doar pentru situații de cod dificile în care accesul larg la întrunire este într-adevăr necesar.