Și cei ce vor ka privire rapidă la ceea ce este Modificatorii de acces în Java (publicprivateprotected) și de ce sunt ele necesare?
Unul dintre principiile tehnologiei de programare orientate-obiect este principiul încapsulării. Ce îi place lui? Și atunci este simplu. Concluzia este că fiecare obiect combină datele și metodele de lucru cu aceste date, și ascunde caracteristicile punerii în aplicare a utilizatorului final. Ia un obiect din viața reală, cum ar fi „auto“. Acest obiect are anumite date, cum ar fi cantitatea de combustibil din rezervor, tipul motorului, numărul de roți, consumul de combustibil, tipul sistemului de frânare, etc. Și există metode - de exemplu, pentru a porni motorul, du-te, oprește-te. Destul de o mulțime de oameni nu au nici o idee despre cum funcționează sau că mecanismul în mașina lor, dar acest lucru nu-i împiedică să meargă la muncă în fiecare zi. Faptul că mașinile au o interfață standard: pedala de frână, gaz, ambreiaj, volan, maneta de viteze (bine, dacă nu atingeți aparatul cu o transmisie automată, există încă mai ușor 🙂). Deci, se dovedește că mașina încapsulează o multitudine de date și metode, dar putem folosi fără a intra în caracteristicile de punere în aplicare a construcției sale.
Același lucru are loc în programarea orientată pe obiecte. de exemplu, vom crea o linie de clasă:
Linia noastra sunt coordonatele primului punct și coordonatele al doilea punct. Acest lucru este (x1, y1) și (x2, y2). Și există un designer. Ambele au acces public modificator. Acest lucru înseamnă că, în orice altă clasă sau obiect, putem scrie următorul cod:
Aceasta este, câmpurile și metodele unei clase sunt disponibile pentru toate celelalte obiecte și clase. Acum să adăugăm în colecția noastră de clasă „lungime“ proprietate. Obținem următoarea clasă:
Aici este, metoda de calcul al lungimii și este numit la sfârșitul constructorului. Adică, lungimea este calculată automat pentru fiecare linie nouă. Cu toate acestea, ce se întâmplă dacă suntem cu voi dintr-o altă clasă de a schimba în mod direct ceea ce oricare dintre coordonatele:
Obțineți coordonatele punctele finale s-au schimbat, iar lungimea ei rămâne aceeași. Dar, într-o astfel de situație și este necesar să se utilizeze modificatori de acces. Noi rescrie clasa noastră din nou. Acum ascunde un modificator de câmp clasă privat, și oferă acces la ele prin intermediul unei metode de acces speciale (mai multe metode sunt numite Conturi cu acces), astfel încât utilizatorul de clasă nu se poate schimba în mod direct pe teren, dar numai prin utilizarea unei metode speciale.
Acum, dacă ne numim setX1 (10), metoda în această metodă, lungimea intervalului este recalculată în mod automat, și, prin urmare, vor fi întotdeauna relevante. Un câmp sunt ascunse în spatele Modificatorul de acces privat nu sunt pur și simplu disponibile din alte clase și obiecte.
Ei bine, cu acest tip, desigur, dar de ce avem nevoie de un modificator protejat. Și să ne pe baza clasei noastre va crea o linie care se poate schimba nu numai lungimea sa, dar, de asemenea, pentru a afișa coordonatele capetele sale. Ca aceasta:
Op-pa! Și aici ne confruntăm cu greșeala! La urma urmei, domeniul clasa părinte sunt ascunse de la noi, și apoi să le imprimați, nu putem! Dar de ieșire așa cum se spune, au întotdeauna. Pur și simplu schimba la câmpurile x1. y1. x2. acces y2 modificator privat protejat, și vom avea acces la aceste câmpuri din toate clasele de urmași, dar ele vor rămâne disponibile pentru alte clase!
Îți place? Utile? Distribuiți!
Privată cred că nu este destul de corect a explicat, pentru că nimeni nu va scrie o clasă separată, care ar afișa numerele dintr-o altă clasă, cea mai simplă metodă de a face de ieșire acolo, sau cel mai rău caz, o metodă pentru prepararea acestor variabile de la klassa.I ar dori să completeze despre designeri și metode în acest articol, nu este clar cum să distingă și de ce ai nevoie de un designer, de ce nu treci variabile la clasa