Java Abstraction - Mastering OOP cu Abstraction in Java



Acest articol despre Java Abstraction vă va ajuta să înțelegeți utilizarea clasei și interfeței Abstract și cum să le realizați folosind Abstraction.

În blogul anterior, ați aflat despre în Java. Acum, în acest blog, vom înțelege încă un pilon important al adică Java Abstraction a cărei funcționalitate principală este ascunderea detaliilor de implementare interne.

Voi acoperi subiectele menționate mai jos în acest articol:





De asemenea, puteți parcurge această înregistrare a unde puteți înțelege subiectele într-o manieră detaliată cu exemple.



Abstracție în POO

Când vorbim în general despre abstractizare, limbajul software este un exemplu de abstractizare. Să luăm un exemplu și să scriem o declarație ca

x = y + z

În afirmația de mai sus, adăugăm două variabile care sunt stocate în două locații diferite și apoi stocăm rezultatul într-o locație nouă. Deci, ce se întâmplă în continuare? După cum știți, există registre, seturi de instrucțiuni, contoare de programe, unități de stocare etc., implicate. Când ne referim la abstractizare în Java, vorbim despre abstractizare în și cum se realizează. Conceptul de abstractizare în POO începe chiar în momentul în care o clasă este concepută. Abstracția este aplicată peste tot în software și OOP.



Ce este Java Abstraction?

Abstracția nu este altceva decât calitatea de a trata ideile, mai degrabă decât evenimentele. Practic se ocupă cu ascunderea detaliilor interne și afișarea lucrurilor esențiale utilizatorului.

Apelare - Java Abstraction -Edureka

Dacă te uiți la gif-ul de mai sus, poți vedea când primești un apel, avem opțiunea de a-l prelua sau de a-l respinge. Dar, în realitate, există o mulțime de cod care rulează în fundal. Așadar, aici nu știți procesarea internă a modului în care este generat un apel, aceasta este frumusețea abstractizării. Puteți realiza abstractizarea în două moduri:

a) Clasa abstractă

b) Interfață

Să înțelegem aceste concepte mai detaliat.

cod Java pentru a termina programul

Clasa abstractă

Clasa Abstract conține cuvântul cheie „abstract”. Dar ce înseamnă exact? Dacă faceți clasa abstractă, aceasta nu poate fi instanțiată, adică nu puteți crea un obiect al unei clase abstracte. De asemenea, o clasă abstractă poate conține metode abstracte, precum și metode concrete.

Notă: Puteți obține 0-100% abstractizare folosind o clasă abstractă.

Pentru a utiliza o clasă abstractă, trebuie să o moșteniți din clasa de bază. Aici, trebuie să furnizați implementări pentru metodele abstracte, altfel va deveni o clasă abstractă.

Să ne uităm la sintaxa unei clase abstracte:

Sport de clasă abstract {// sport de clasă abstract Abstract jump void jump () // metodă abstractă}

Interfață

O interfață în Java este o colecție de metode abstracte și constante statice. După cum ați putea ști într-o interfață, fiecare metodă este publică și abstractă, dar nu conține niciun constructor. Împreună cu abstractizarea, interfața ajută și la obținerea mai multor moșteniri în Java.
Notă: Puteți obține 100% abstractizare folosind interfețe.

Practic, Interfața este un grup de metode conexe cu corpuri goale. Să înțelegem interfețele luând un exemplu de interfață Shape cu metodele sale conexe.

interfață publică formă {public void draw () public double getArea ()}

Aceste metode trebuie să fie prezente în fiecare „formă”, nu? Dar munca lor va fi diferită.

Să presupunem că doriți să desenați o formă, să spunem cerc, pătrat, dreptunghi etc. Știți deja, fiecare formă are propriile dimensiuni, cum ar fi raza, înălțimea și lățimea. Spune că vreau să desenez un cerc și să-i calculăm aria. Având în vedere același lucru, am creat două metode în codul de mai sus, adică draw () și getArea (). Acum, folosind aceste metode, pot să desenez orice formă și să calculez aria prin implementarea interfeței sale.

Acum, să analizăm funcționalitatea cu privire la modul în care puteți implementa această interfață.
Pentru a implementa această interfață, numele clasei dvs. s-ar schimba în oricare dintre forme, să spunem „Cerc”. Deci, pentru a implementa interfața clasei, voi folosi cuvântul cheie „implement”:

public class Circle implementează Shape {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

În exemplul de mai sus, am specificat funcționalități pentru diferitele metode și aria calculată a unui cerc. Aici, la implementarea unei interfețe, permite unei clase să devină mai formală despre comportamentul pe care îl oferă. De asemenea, puteți crea o altă clasă, să spunem clasa „Rectangle”, care poate moșteni aceeași „formă” a interfeței cu funcționalități diferite.

Exemplu în timp real de abstractizare în java

Să presupunem că avem ca interfață Sport. Aici, implementarea va fi asigurată de cursurile numite „Badminton” și „Fotbal”. Într-un scenariu real, un utilizator final nu va fi la curent cu clasa de implementare. Prin urmare, un obiect al clasei de implementare poate fi furnizat prin metoda din fabrică. Metoda din fabrică poate fi utilizată pentru a crea un obiect al clasei de implementare pe baza unor criterii.
Să implementăm același lucru și să creăm o interfață numită Sport.java.

public Interface Sport {void play ()} // Acum, vom crea clasa denumită „Badminton” clasa publică Badminton implementează Sport {@Override public void play () {System.out.println ('Playing badminton')}} // În continuare, să creăm ultima noastră clasă „Fotbal”, clasă publică Fotbalul implementează Sport {@Override public void play () {System.out.println ('Jucând fotbal')}

Ultimul pas este crearea unei clase principale numite „SportInterface”.

public SportInterface {public static void main (String args []) {// codul dvs. aici}}

Când executați programul de mai sus, ieșirea va fi după cum se arată mai jos:

Jucând badminton ------------------- Jucând fotbal

java este-o relație

Sper că voi sunteți clari cu interfața și cum puteți realiza abstractizarea folosind-o. Acum, să încheiem acest articol comparând abstractizarea și încapsularea.

Abstracție vs încapsulare

Abstracție Incapsularea
Rezolvă problema la nivel de proiectareRezolvă problema la nivelul implementării
Folosit pentru ascunderea datelor nedorite și oferirea de rezultate relevanteIncapsularea înseamnă ascunderea codului și a datelor într-o singură unitate pentru a proteja datele din lumea exterioară
Aspect exterior - utilizat în ceea ce privește designulAspect interior - utilizat în ceea ce privește implementarea

Sper că ați înțeles diferența dintre abstractizare și încapsulare. Cu aceasta, ajungem la sfârșitul blogului Java Abstraction. Sper, l-ați găsit informativ și a contribuit la adăugarea de valoare a cunoștințelor dvs. Dacă doriți să aflați mai multe despre Java, puteți face referire la

Acum că ați înțeles „Ce este Java Abstraction”, consultați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul de formare și certificare Java J2EE și SOA al Edureka este conceput pentru studenți și profesioniști care doresc să fie dezvoltator Java. Cursul este conceput pentru a vă oferi un început avansat în programarea Java și pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Java Abstraction” și vă vom contacta cât mai curând posibil.