Incapsulare în Java - Cum să stăpânești OOP-uri cu încapsulare?



Acest articol despre încapsularea în Java vă va ajuta să înțelegeți conceptele de bază ale ascunderii detaliilor de implementare împreună cu diferite exemple simple.

Programarea orientată pe obiecte sau mai bine cunoscută sub numele de OOP este unul dintre pilonii majori ai Java care și-a valorificat puterea și ușurința de utilizare. Pentru a deveni un dezvoltator Java profesionist, trebuie să obțineți un control impecabil asupra diferitelor ca , Abstracție , Încapsulare și polimorfism. Prin intermediul acestui articol, vă voi oferi o perspectivă completă asupra unuia dintre cele mai importante concepte ale OOP-urilor, adică a încapsulării în Java și a modului în care se realizează.

Mai jos sunt subiectele pe care le voi discuta în acest articol:





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



Introducere în încapsulare

Incapsularea se referă la înfășurarea datelor sub o singură unitate. Este mecanismul care leagă codul și datele pe care le manipulează. O altă modalitate de a vă gândi la încapsulare este că este un scut protector care împiedică accesul la date prin codul din afara acestui scut. În aceasta, variabilele sau datele unui este ascuns de orice altă clasă și poate fi accesat numai prin orice funcție membru a clasei proprii în care sunt declarate.

Acum, să luăm exemplul unei capsule medicale, în care medicamentul este întotdeauna în siguranță în interiorul capsulei. În mod similar, prin încapsulare, metodele și variabilele unei clase sunt bine ascunse și sigure.



Incapsulare -Encapsulare în Java-EdurekaIncapsularea în Java poate fi realizată prin:

ce este o metodă în javascript
  • Declararea variabilelor unei clase ca fiind private.
  • Furnizarea de metode publice de setter și getter pentru modificarea și vizualizarea valorilor variabilelor.

Acum, să analizăm codul pentru a înțelege mai bine încapsularea:

public class Student {private String name public String getName () {return name} public void setName (String name) {this.name = name}} class Test {public static void main (String [] args) {Student s = new Student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

După cum puteți vedea în codul de mai sus, am creat o clasă Student care are un privat Nume . Apoi, am creat un getter și setter pentru a obține și seta numele unui student. Cu ajutorul acestor metode, orice clasă care dorește să acceseze variabila nume trebuie să o facă folosind aceste metode getter și setter.

Acum, să vedem încă un exemplu și să înțelegem încapsularea în profunzime. În acest exemplu, clasa Mașină are două câmpuri - nume și topSpeed. Aici, ambele sunt declarate private, ceea ce înseamnă că nu pot fi accesate direct în afara clasei. Avem câteva metode getter și setter precum getName, setName, setTopSpeed ​​etc. și sunt declarate publice. Aceste metode sunt expuse „celor din afară” și pot fi utilizate pentru a schimba și prelua date din obiectul Mașină. Avem o metodă pentru a seta viteza maximă a vehiculului și două metode getter pentru a recupera valoarea vitezei maxime, fie în MPH, fie în KMHt. Deci, practic, asta face încapsularea - ascunde implementarea și ne oferă valorile dorite. Acum, să analizăm codul de mai jos.

pachet Edureka public class Car {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} public double getTopSpeedMPH () {return topSpeed} public double getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Aici, programul principal creează un obiect Car cu un nume dat și folosește metoda setter pentru a stoca viteza maximă pentru această instanță. Făcând acest lucru, putem obține cu ușurință viteza în MPH sau KMH fără să ne preocupe cum se convertește viteza în clasa Mașină.

pachet Edureka public class Exemplu {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-litru V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'viteza maximă în MPH este' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'viteza maximă în KMH este' + car.getTopSpeedKMH ())

So, așa se poate realiza încapsularea în Java. Acum, să mergem mai departe și să vedem de ce avem nevoie de încapsulare.

cum să ieși din program în java

De ce avem nevoie de încapsulare în Java?

Incapsularea este esențială în Java, deoarece:

  • Controlează modul de accesibilitate a datelor
  • Modifică codul pe baza cerințelor
  • Ne ajută să obținem un cuplu liber
  • Realizează simplitatea aplicației noastre
  • De asemenea, vă permite să modificați partea de cod fără a perturba alte funcții sau coduri prezente în program

Acum, să luăm în considerare un mic exemplu care ilustrează necesitatea încapsulării.

clasă Student {int id String name} public class Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

În exemplul de mai sus, conține două variabile de instanță ca modificator de acces. Deci, orice clasă din același pachet poate atribui și modifica valorile acelor variabile prin crearea unui obiect din acea clasă. Astfel, nu avem control asupra valorilor stocate în clasa Student ca variabile. Pentru a rezolva această problemă, încapsulăm clasa Student.

Deci, acestea au fost puținele indicații care descriu necesitatea încapsulării. Acum, să vedem câteva beneficii ale încapsulării.

Beneficiile încapsulării

    • Ascunderea datelor: Aici, un utilizator nu va avea nicio idee despre implementarea interioară a clasei. Chiar și utilizatorul nu va fi conștient de modul în care clasa stochează valori în variabile. El / ea va fi conștient doar că transmitem valorile către o metodă setter și variabilele sunt inițializate cu acea valoare.
    • Flexibilitate sporită: Aici, putem face variabilele clasei ca numai în citire sau numai în scriere, în funcție de cerința noastră. În cazul în care doriți să faceți variabilele doar în citire, trebuie să omitem metodele setterului, cum ar fi setName (),setAge() etc. sau dacă dorim să facem variabilele doar în scriere, atunci trebuie să omitem metodele get precum getName (), getAge () etc. din programul de mai sus.
    • Reutilizare: De asemenea, îmbunătățește reutilizarea și ușor de schimbat cu noile cerințe.

Acum, că am înțeles elementele fundamentale ale încapsulării, să ne aruncăm cu capul în ultimul subiect al acestui articol și să înțelegem încapsularea în detaliu cu ajutorul unui exemplu în timp real.

Un exemplu în timp real de încapsulare

Să luăm în considerare un exemplu de televiziune și să înțelegem cum detaliile interne de implementare sunt ascunse clasei exterioare.Practic, în acest exemplu, ascundem date de cod interior, adică circuite din lumea externă de capac. Acum in , acest lucru poate fi realizat cu ajutorul modificatorilor de acces. Modificatorii de acces stabilesc accesul sau nivelul unei clase, variabilele constructorilor etc. După cum puteți vedea în codul de mai jos, am folosit modificator de acces privat pentru a restricționa nivelul de acces al clasei. Variabilele declarate private sunt accesibile numai în cadrul clasei de televiziune.

public class Television {private double width private double height private double Screensize private int maxVolume print int volume private boolean power public Television (dublu lățime, dublă înălțime, ecran dublu Dimensiune) {this.width this.height this.screenSize = ScreenSize} public double channelTuning (canal int) {switch (channel) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int reduceVolume () {if (0volume) volume ++ return return}} test de clasă {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televizor. // Aruncă eroare deoarece variabila este privată și nu poate fi accesată în afara clasei}}

În exemplul de mai sus, am declarat toate variabilele ca private și metode, constructori și clase ca publice. Aici, constructorii, metodele pot fi accesate în afara clasei. Când creezun obiectdin clasa Televiziune, poate accesa metodele și constructorii prezenți în clasă, în timp ce variabilele declarate cu modificator de acces privat sunt ascunse. De aceea, atunci când încercați să accesați lățime variabilă în exemplul de mai sus, aruncăo eroare. Acesta este modul în care detaliile de implementare internă sunt ascunse celorlalte clase. Acesta este modul în care se realizează încapsularea în Java.

Acest lucru ne aduce la sfârșitul acestui articol despre „Encapsulare în Java”. Sper că 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 Encapsularea în Java”, 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 important î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 „Encapsulare în Java” și vă vom contacta cât mai curând posibil.