Ce este abstractizarea și încapsularea?
La abstractizare și încapsulare Sunt două concepte esențiale în programare orientat pe obiecte (POO). Ambele servesc la organizarea și structurarea codului nostru și pentru a evita eventualele erori sau conflicte.
Abstracție
La abstractizare este procesul de identificare a caracteristicilor esențiale a unui obiect și omiteți caracteristicile neesențiale. În programarea OOP, abstractizarea ne permite să creăm o clasă fără să ne facem griji cu privire la detaliile interne ale implementării acesteia.
De exemplu, dacă creăm un joc de curse, putem crea o clasă „Mașină” care are proprietăți precum „Viteză” sau „Accelerație”, dar nu trebuie să știm cum funcționează motorul sau cum este transmisă puterea către rotile.
Exemplu:
Să ne uităm la un exemplu de cod care ilustrează abstractizarea:
class Car { private int CurrentSpeed; accelerare private int; Public Car() { currentSpeed = 0; accelerație = 0; } public void accelerate(int increment) { acceleration += increment; } public void decelerate(int decrement) { acceleration -= decrement; } // Alte proprietăți și metode... }
În acest exemplu, creăm o clasă „Mașină” care are două proprietăți (viteza curentă și accelerația) și două metode (accelerare și frânare). Cu toate acestea, nu trebuie să cunoaștem detaliile interne ale modului în care se mișcă mașina și putem lucra cu ea ca și cum ar fi o entitate abstractă.
Încapsulare
La încapsulare, pe de altă parte, este procesul de ascunde sau de protejare a detaliilor interne ale unei clase și de a permite accesul doar printr-o interfață publică. Acest lucru se face pentru a evita posibile conflicte sau erori.
De exemplu, dacă avem o clasă „Persoană” cu proprietăți precum „Vârsta” sau „Nume”, vrem să ne asigurăm că acestea nu pot fi modificate din afara clasei din neatenție. Pentru a face acest lucru, putem seta aceste proprietăți ca private și putem crea metode publice pentru a le accesa, cum ar fi „getAge()” sau „setName()”.
Exemplu:
Să ne uităm la un exemplu de cod care ilustrează încapsularea:
class Person { private int age; nume șir privat; public Person(int e, String n) { varsta = e; nume = n; } public int getAge() { return age; } public String getName() { return name; } public void setName(String n) { nume = n; } // Alte proprietăți și metode... }
În acest exemplu, creăm o clasă „Persoană” cu două proprietăți (vârstă și nume) și mai multe metode pentru a le accesa (getAge, getName și setName). Dar aceste proprietăți sunt accesibile numai din interiorul clasei, protejându-le de posibile erori sau conflicte.
Concluzie
În concluzie, abstractizare și încapsulare sunt două concepte cheie în programarea orientată pe obiecte. Abstracția ne permite să lucrăm cu entități abstracte fără a ne face griji cu privire la detaliile interne ale implementării lor, în timp ce încapsularea ne permite să protejăm detaliile interne ale unei clase și să permitem accesul doar printr-o interfață publică.
Este esențial să înțelegem aceste concepte pentru a proiecta și dezvolta programe eficiente orientate pe obiecte și bine structurat.
Referințe
- Introducere în conceptele de programare orientată pe obiecte – GeeksforGeeks
- Abstracția (informatica) – Wikipedia
- Încapsulare (programare) – Wikipedia
Sunt Sebastián Vidal, un inginer informatic pasionat de tehnologie și bricolaj. În plus, eu sunt creatorul tecnobits.com, unde împărtășesc tutoriale pentru a face tehnologia mai accesibilă și mai ușor de înțeles pentru toată lumea.