Abstracția în Java
În ce este abstracția Java?
abstracțiune este conceptul de programare orientată pe obiecte care „afișează” doar atribute esențiale și „ascunde” informații inutile. Scopul principal al abstractizării este ascunderea de către utilizatori a detaliilor inutile. Abstracția înseamnă selectarea datelor dintr-un grup mai mare pentru a afișa utilizatorului numai detalii relevante ale obiectului. Ajută la reducerea complexității și eforturilor de programare. Este unul dintre cele mai importante concepte ale POO.
Clic aici dacă videoclipul nu este accesibil
Să studiem abstracția în POO cu exemplu:
Să presupunem că doriți să creați o aplicație bancară și vi se cere să colectați toate informațiile despre clientul dvs. Există șanse să veniți cu următoarele informații despre client
Dar, nu toate informațiile de mai sus sunt necesare pentru a crea o aplicație bancară. Deci, trebuie să selectați doar informațiile utile pentru dvs aplicație bancară din bazinul acela. Date precum numele, adresa, informațiile fiscale etc. au sens pentru o aplicație bancară, care este un exemplu de abstractizare în POO
Deoarece am preluat/eliminat/selectat informațiile despre clienți dintr-un grup mai mare, procesul este denumit Abstracție în OOP-uri. Cu toate acestea, aceleași informații odată extrase pot fi folosite pentru o gamă largă de aplicații. De exemplu, puteți utiliza aceleași date pentru cererea de spital, cererea de portal de locuri de muncă, o bază de date guvernamentală etc. cu puține modificări sau deloc. Prin urmare, acestea devin datele dvs. de bază. Acesta este un avantaj al abstracției în POO.
Diferența dintre abstracție și încapsulare
abstracțiune | încapsularea |
---|---|
Abstracția în programarea orientată pe obiecte rezolvă problemele la nivel de proiectare. | Încapsularea rezolvă nivelul de implementare. |
Abstracția în programare se referă la ascunderea detaliilor nedorite în timp ce afișează cele mai multe informații esențiale. | Încapsularea înseamnă legarea codului și a datelor într-o singură unitate. |
Abstracția datelor în Java permite concentrarea asupra a ceea ce trebuie să conţină obiectul informaţional | încapsularea înseamnă ascunderea detaliilor interne sau a mecanicii modului în care un obiect face ceva din motive de securitate. |
Diferența dintre clasa abstractă și interfață
Clasa abstractă | interfaţă |
---|---|
O clasă abstractă poate avea atât metode abstracte, cât și non-abstracte. | Interfața poate avea doar metode abstracte. |
Nu acceptă moșteniri multiple. | Acceptă moșteniri multiple. |
Poate oferi implementarea interfeței. | Nu poate furniza implementarea clasei abstracte. |
O clasă abstractă poate avea metode publice protejate și abstracte. | O interfață poate avea doar metode abstracte publice. |
O clasă abstractă poate avea variabilă finală, statică sau finală statică cu orice specificator de acces. | Interfața poate avea doar o variabilă finală publică statică. |
Ce este clasa abstractă?
CLASA DE REZUMAT este un tip de clasă în Java, care declară una sau mai multe metode abstracte. Aceste clase pot avea atât metode abstracte, cât și metode concrete. O clasă normală nu poate avea metode abstracte. O clasă abstractă este o clasă care conține cel puțin o metodă abstractă. Putem înțelege conceptul prin exemplu de formă în java.
Luați în considerare următoarea ierarhie de clase constând dintr-o clasă Shape care este moștenită de trei clase Rectangle, Circle și Triangle. Clasa Shape este creată pentru a salva atributele și metodele comune partajate de cele trei clase Rectangle, Circle și Triangle. calculateArea() este o astfel de metodă partajată de toate cele trei clase copil și prezentă în clasa Shape.
Acum, să presupunem că scrieți cod pentru a crea obiecte pentru clasele descrise mai sus. Să observăm cum acestea obiectele vor arăta într-o lume practică. Un obiect din dreptunghiul clasei va da un dreptunghi, o formă pe care am observat-o atât de frecvent în viața de zi cu zi.
Un obiect din triunghiul clasei va da un triunghi, din nou o formă comună de zi cu zi.
Dar cum ar arăta un obiect Class Shape într-o lume practică?
Dacă observați clasa Shape servește în scopul nostru de a-l atinge moștenire și polimorfism. Dar nu a fost construit pentru a fi instanțiat. Astfel de clase pot fi etichetate Abstract. O clasă java abstractă nu poate fi instanțiată.
Sintaxă:
abstract class Shape{ // code }
Este posibil să NU etichetați clasa Shape drept Abstract și apoi să o instanțiați. Dar un astfel de obiect nu va avea nicio utilitate în codul dvs. și va deschide o cameră pentru potențiale erori. Prin urmare, acest lucru nu este de dorit.
În ce sunt metodele abstracte Java?
METODA ABSTRACTA in Java, este o metodă care are doar definiția metodei, dar nu conține implementare. O metodă fără corp este cunoscută ca o metodă abstractă. Trebuie declarat într-o clasă abstractă. Metoda abstractă nu va fi niciodată finală deoarece clasa abstractă trebuie să implementeze toate metodele abstracte.
După cum știm cu toții, formula pentru calcularea ariei pentru dreptunghi, cerc și triunghi este diferită. Metoda calculateArea() va trebui să fie înlocuită de clasele care moștenesc. Nu are sens să-l definești în clasa Shape, dar trebuie să ne asigurăm că toate clasele care moștenesc au metoda.
Astfel de metode pot fi etichetate abstract
Sintaxă:
abstract public void calculateArea();
Pentru un metoda abstractă, nu este necesară nicio implementare. Este definită doar semnătura metodei.
Exemplu de cod de abstractizare
abstract class Shape{ abstract void calculateArea(); } class guru99 extends Shape{ void calculateArea(){System.out.println("Area of Shape");} public static void main(String args[]){ Shape obj = new guru99(); obj.calculateArea(); } }
Avantajele abstracției
- Principalul beneficiu al utilizării unei abstracție în Programare este că vă permite să grupați mai multe clase înrudite ca frați.
- Abstracția în programarea orientată pe obiecte ajută la reducerea complexității procesului de proiectare și implementare a software-ului.
Cuvânt cheie final în Java
Modificatorul final se aplică claselor, metodelor și variabilelor. Sensul finalului variază de la context la context, dar ideea esențială este aceeași.
- O clasă finală nu poate fi moștenită
- O variabilă finală devine o constantă și valoarea ei nu poate fi modificată.
- O metodă finală nu poate fi anulată. Acest lucru se face din motive de securitate, iar aceste metode sunt folosite pentru optimizare.
Exemplu :- Pentru a învăța cuvinte cheie abstracte și finale
Pas 1) Copiați următorul cod într-un Editor.
abstract class Shape{ final int b = 20; public void display(){ System.out.println("This is display method"); } abstract public void calculateArea(); } public class Rectangle extends Shape{ public static void main(String args[]){ Rectangle obj = new Rectangle(); obj.display(); //obj.b=200; } //public void calculateArea(){} }
Pas 2) Salvați, compilați și rulați codul.
Pas 3) Eroare =? Metoda abstractă nu este implementată în clasa Rectangle. Pentru a remedia problema, decomentați linia #15.
Pas 4) Decomentați linia # 13. Salvați și compilați codul.
Pas 5) Eroare = ? variabila b este finală
Când să folosiți Metode abstracte și Clasa de abstracte?
Metodele abstracte sunt în mare parte declarate în cazul în care două sau mai multe subclase fac, de asemenea, același lucru în moduri diferite prin implementări diferite. De asemenea, extinde aceeași clasă Abstract și oferă diferite implementări ale metodelor abstracte.
Clasele abstracte ajută la descrierea tipurilor generice de comportamente și a ierarhiei claselor de programare orientată pe obiecte. De asemenea, descrie subclasele pentru a oferi detalii de implementare ale clasei abstracte.
Rezumat:
- Abstracția în programare este procesul de selectare a seturi de date importante pentru un Obiect în software-ul tău și lăsându-le deoparte pe cele nesemnificative.
- După ce v-ați modelat obiectul utilizând Data Abstraction în Java, același set de date ar putea fi utilizat în aplicații diferite.