Enkapsulacija v Javi - Kako obvladati OOP-je z enkapsulacijo?



Ta članek o Enkapsulaciji v Javi vam bo pomagal razumeti temeljne koncepte skrivanja podrobnosti izvedbe skupaj z različnimi preprostimi primeri.

Predmetno usmerjeno programiranje ali bolj znano kot OOP je eden glavnih stebrov Jave, ki je izkoristil svojo moč in enostavnost uporabe. Če želite postati poklicni razvijalec Java, morate imeti brezhiben nadzor nad različnimi všeč , Abstrakcija , Kapsulacija in polimorfizem. Skozi medij tega članka vam bom dal popoln vpogled v enega najpomembnejših konceptov OOP-ov, tj. Kapsulacija v Javi in ​​kako je to doseženo.

Spodaj so teme, o katerih bom razpravljal v tem članku:





Lahko si ogledate tudi ta posnetek kjer lahko teme natančno razumete s primeri.



Uvod v kapsulacijo

Kapsulacija se nanaša na zavijanje podatkov v eno samo enoto. Mehanizem je tisti, ki veže kodo in podatke, s katerimi manipulira. Drugi način razmišljanja o kapsulaciji je, da je zaščitni ščit, ki preprečuje dostop do podatkov s pomočjo kode zunaj tega ščita. V tem so spremenljivke ali podatki a je skrit pred katerim koli drugim razredom in je do njega dostopen samo s katero koli funkcijo člana lastnega razreda, v katerem so navedeni.

Zdaj pa si oglejmo primer medicinske kapsule, kjer je zdravilo v kapsuli vedno varno. Podobno so z enkapsulacijo metode in spremenljivke razreda dobro skrite in varne.



kuhar vs ansible vs lutka

Enkapsulacija - Enkapsulacija v Java-EdurekiKapsulacijo v Javi lahko dosežemo z:

  • Razglasitev spremenljivk razreda za zasebne.
  • Zagotavljanje javnih nastavitvenih in pridobitvenih metod za spreminjanje in ogled vrednosti spremenljivk.

Zdaj pa si oglejmo kodo, da bomo bolje razumeli inkapsulacijo:

javni razred Student {ime zasebnega niza javni niz getName () {ime vračanja} javna praznina setName (ime niza) {this.name = name}} Preizkus razreda {javna statična void glavna (niz [] argumenti) {Študent s = nov študent () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Kot lahko vidite v zgornji kodi, sem ustvaril razred Student, ki ima zasebnega ime . Nato sem ustvaril getter in setter, da dobim in nastavim ime študenta. S pomočjo teh metod mora vsak razred, ki želi dostopati do spremenljivke imena, to storiti s pomočjo teh metod getter in setter.

Zdaj pa si oglejmo še en primer in poglobljeno razumemo Enkapsulacijo. V tem primeru ima razred Car dve polji - ime in topSpeed. Tu sta obe deklarirani kot zasebni, kar pomeni, da do njih ni mogoče dostopati neposredno zunaj razreda. Imamo nekaj getter in setter metod, kot so getName, setName, setTopSpeed ​​itd., In so razglašene za javne. Te metode so izpostavljene 'tujcem' in se lahko uporabljajo za spreminjanje in pridobivanje podatkov iz predmeta Car. Na voljo imamo en način za nastavitev najvišje hitrosti vozila in dva načina za pridobivanje največje hitrosti v MPH ali KMHt. Torej v bistvu to počne inkapsulacija - skriva izvedbo in nam daje vrednosti, ki jih želimo. Zdaj pa si oglejmo spodnjo kodo.

paket Edureka javni razred 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} javni dvojni getTopSpeedMPH () {return topSpeed} javni dvojni getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Tu glavni program ustvari objekt Car z določenim imenom in uporabi metodo nastavitve za shranjevanje največje hitrosti za ta primerek. S tem lahko hitro dosežemo hitrost v miljah na uro ali KMH, ne da bi nam bilo vseeno, kako se hitrost pretvori v razred avtomobila.

paket Edureka javni razred Primer {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4,8-litrski V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'najvišja hitrost v MPH je' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'najvišja hitrost v KMH je' + car.getTopSpeedKMH ())

So, tako lahko v Javi dosežemo enkapsulacijo. Zdaj pa pojdimo naprej in poglejmo, zakaj potrebujemo kapsulacijo.

Zakaj potrebujemo enkapsulacijo v Javi?

Kapsulacija je v Javi bistvenega pomena, ker:

  • Nadzira način dostopnosti podatkov
  • Spremeni kodo glede na rekvizite
  • Pomaga nam pri ohlapnem paru
  • Dosežemo preprostost naše aplikacije
  • Omogoča tudi spreminjanje dela kode, ne da bi pri tem motili druge funkcije ali kodo, ki so prisotne v programu

Zdaj pa si oglejmo majhen primer, ki ponazarja potrebo po kapsulaciji.

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

V zgornjem primeru vsebuje dve spremenljivki primerka kot modifikator dostopa. Torej lahko kateri koli razred v istem paketu dodeli in spremeni vrednosti teh spremenljivk z ustvarjanjem predmeta tega razreda. Tako nimamo nadzora nad vrednostmi, shranjenimi v razredu Student kot spremenljivke. Da bi rešili ta problem, kapsuliramo razred Student.

razvrsti številke c ++

Torej, to je bilo nekaj napotkov, ki prikazujejo potrebo po kapsulaciji. Zdaj pa poglejmo nekaj prednosti inkapsulacije.

Prednosti kapsulacije

    • Skrivanje podatkov: Tu uporabnik ne bo imel pojma o notranji izvedbi razreda. Tudi uporabnik ne bo vedel, kako razred shranjuje vrednosti v spremenljivke. Zavedal se bo le, da vrednosti posredujemo metodi nastavitelja in da se spremenljivke inicializirajo s to vrednostjo.
    • Povečana prilagodljivost: Tu lahko spremenljivke razreda naredimo samo za branje ali samo za pisanje, odvisno od naše zahteve. Če želite spremenljivke narediti samo za branje, moramo izpustiti nastavitvene metode, kot je setName (),setAge() itd. ali če želimo spremenljivke narediti samo za pisanje, potem moramo iz zgornjega programa izpustiti metode get, kot so getName (), getAge () itd.
    • Ponovna uporabnost: Izboljša tudi ponovno uporabnost in enostavno spreminjanje z novimi zahtevami.

Zdaj, ko smo razumeli osnove inkapsulacije, se poglobimo v zadnjo temo tega članka in podrobno razumemo Encapsulation s pomočjo primera v realnem času.

v nizu konstantnih bazenov ne bo dveh nizovnih predmetov z enako vsebino.

Primer sprostitve v realnem času

Oglejmo si televizijski primer in razumemo, kako so podrobnosti notranje izvedbe skrite pred zunanjim razredom.V bistvu v tem primeru skrivamo podatke notranje kode, to je vezja iz zunanjega sveta, ki jih pokriva pokrov. Zdaj v , to lahko dosežemo s pomočjo modifikatorjev dostopa. Modifikatorji dostopa določajo dostop ali raven razreda, spremenljivke konstruktorjev itd. Kot lahko vidite v spodnji kodi, sem z omejevalnikom zasebnega dostopa omejil raven dostopa razreda. Spremenljivke, ki so razglašene za zasebne, so dostopne samo znotraj razreda Television.

javni razred televizija {zasebna dvojna širina zasebna dvojna višina zasebna dvojna Screensize zasebna int maxVolume tiskanje int obseg zasebna logična moč javna televizija (dvojna širina, dvojna višina, dvojni screenSize) {this.width this.height this.screenSize = ScreenSize} javni dvojni kanal (int channel) {stikalo (channel) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int reductionVolume () {if (0volume) volume ++ return volume}} test razreda {public static void main (String args []) {Televizija t = nova televizija (11,5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televizija. // Vrže napako, saj je spremenljivka zasebna in je zunaj razreda ni mogoče dostopati}}

V zgornjem primeru sem vse spremenljivke razglasil za zasebne, metode, konstruktorje in razred pa za javne. Tu so konstruktorji in metode dostopni zunaj razreda. Ko ustvarjampredmetrazreda Television lahko dostopa do metod in konstruktorjev, prisotnih v razredu, medtem ko so spremenljivke, deklarirane z modifikatorjem zasebnega dostopa, skrite. Zato, ko poskušate dostopati spremenljivka širine v zgornjem primeru vrženapaka. Tako se pred drugimi razredi skrivajo podrobnosti o notranji izvedbi. Tako se v Javi doseže enkapsulacija.

S tem smo prišli do konca tega članka o »Enkapsulaciji v Javi«. Upam, da se vam je zdel informativen in je pripomogel k dodajanju vrednosti vašemu znanju. Če želite izvedeti več o Javi, se lahko obrnete na

Zdaj, ko ste razumeli 'kaj je enkapsulacija v Javi', si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam omogoči uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega bloga 'Enkapsulacija v Javi', da se vam bomo javili v najkrajšem možnem času.