Kapseldamine Java-s - kuidas hallata OOP-sid kapseldamisega?



See artikkel Java kapseldamise kohta aitab teil mõista rakenduse üksikasjade peitmise põhimõisteid koos erinevate lihtsate näidetega.

Objektorienteeritud programmeerimine ehk paremini tuntud kui OOP-d on Java peamisi tugisambaid, mis on võimendanud oma võimsust ja kasutusmugavust. Professionaalseks Java-arendajaks saamiseks peate selle üle saama laitmatu kontrolli meeldib , Abstraktsioon , Kapseldamine ja polümorfism. Selle artikli vahendusel annan teile täieliku ülevaate OOP-de kõige olulisematest kontseptsioonidest, st Java kapseldamisest ja selle saavutamisest.

Allpool on toodud teemad, mida käsitlen selles artiklis:





algoritmi sortimine c ++

Võite ka selle salvestuse läbi vaadata kus saate teemadest üksikasjalikult aru saada koos näidetega.



Sissejuhatus kapseldamisse

Kapseldamine viitab andmete pakkimisele ühe üksuse alla. See on mehhanism, mis seob koodi ja sellega manipuleeritavaid andmeid. Teine võimalus kapseldamise üle mõelda on see, et see on kaitsekilp, mis takistab väljaspool seda kilpi asuva koodi juurdepääsu andmetele. Selles muutujad või andmed a on peidetud mis tahes muu klassi eest ja sellele pääseb juurde ainult oma klassi kõigi liikmesfunktsioonide kaudu, milles nad on deklareeritud.

Võtame näiteks meditsiinilise kapsli, kus ravim on kapsli sees alati ohutu. Samamoodi on kapseldamise kaudu klassi meetodid ja muutujad hästi varjatud ja turvalised.



Kapseldamine - kapseldamine Java-EdurekasJava kapseldamise saab saavutada järgmiselt:

  • Klassi muutujate privaatseks kuulutamine.
  • Muutujate väärtuste muutmiseks ja vaatamiseks avalike setter- ja getter-meetodite pakkumine.

Vaatame nüüd koodi, et kapseldamisest paremini aru saada:

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

Nagu ülaltoodud koodist näete, lõin klassi õpilase, kellel on privaat nimi . Järgmisena olen õpilase nime saamiseks ja määramiseks loonud parema ja setteri. Nende meetodite abil peab iga klass, kes soovib pääseda nimemuutujale, tegema seda nende getteri ja setteri meetodite abil.

Vaatame nüüd veel ühte näidet ja mõistame kapseldamist põhjalikult. Selles näites on autoklassil kaks välja - nimi ja topSpeed. Siin on mõlemad kuulutatud privaatseteks, mis tähendab, et neile ei pääse otse väljaspool klassi. Meil on mõned getteri ja setteri meetodid, näiteks getName, setName, setTopSpeed ​​jne. Need on kuulutatud avalikeks. Need meetodid puutuvad kokku „autsaideritega“ ja neid saab kasutada objekti objektist andmete muutmiseks ja hankimiseks. Meil on üks meetod sõiduki tippkiiruse seadmiseks ja kaks paremat meetodit maksimaalse kiiruse väärtuse saamiseks kas MPH või KMHt. Nii et kapseldamine teeb seda põhimõtteliselt - see varjab rakendamist ja annab meile soovitud väärtused. Vaatame nüüd allpool olevat koodi.

pakett 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}}

Siin loob põhiprogramm autoga objekti nimega ja kasutab setter-meetodit selle eksemplari tippkiiruse salvestamiseks. Seda tehes saame hõlpsasti MPH või KMH kiiruse, hoolimata sellest, kuidas kiirus teisendatakse klassis Car.

pakett Edureka avaliku klassi näide {public static void main (String args []) Autosõiduk = new Car () car.setName ('Mustang GT 4,8-liitrine V8') car.setTopSpeed ​​(201) System.out.println (auto. getName () + 'tippkiirus MPH-s on' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'tippkiirus KMH-s on' + car.getTopSpeedKMH ())

So, nii saab kapseldamist Java-s saavutada. Nüüd liigume edasi ja vaatame, miks me vajame kapseldamist.

Miks me vajame Java kapseldamist?

Kapseldamine on Java-s oluline, kuna:

  • See kontrollib andmete kättesaadavuse viisi
  • Muudab koodi vastavalt rekvisiitidele
  • Aitab meil saavutada vaba paar
  • Saavutab meie rakenduse lihtsuse
  • See võimaldab teil muuta ka koodi osa, häirimata muid programmis sisalduvaid funktsioone või koodi

Vaatleme nüüd väikest näidet, mis illustreerib kapseldamise vajadust.

fibonacci sarja programm jaavas
klass Õpilane {int id Stringi nimi} avalik klass Demo {public static void main (String [] args) {Õpilane s = uus Õpilane () s.id = 0 s.nimi = 's.nimi = null}}

Ülaltoodud näites sisaldab see juurdepääsu modifitseerijana kahte eksemplari muutujat. Nii et iga sama paketi klass saab määrata ja muuta nende muutujate väärtusi, luues selle klassi objekti. Seega pole meil kontroll õpilaste klassi muutujana salvestatud väärtuste üle. Selle probleemi lahendamiseks kapseldame õpilaste klassi.

Nii olid need vähesed näpunäited, mis kirjeldavad kapseldamise vajadust. Vaatame nüüd kapseldamise eeliseid.

Kapseldamise eelised

    • Andmete varjamine: Siin pole kasutajal aimugi klassi sisemisest rakendamisest. Isegi kasutaja ei tea, kuidas klass väärtustesse muutujatesse salvestab. Ta saab ainult aru, et edastame väärtused setteri meetodile ja muutujad selle väärtusega initsialiseeruvad.
    • Suurem paindlikkus: Siin saame muuta klassi muutujad kirjutuskaitsteks või kirjutamiseks ainult vastavalt meie nõudmistele. Kui soovite muuta muutujad kirjutuskaitstud, peame setteri meetodid nagu setName () välja jätma,setAge() jne või kui soovime muutujad kirjutada ainult kirjutamiseks, peame ülaltoodud programmist välja jätma sellised meetodid nagu getName (), getAge () jne.
    • Korduvkasutus: See parandab ka korduvkasutatavust ja on uute nõuetega hõlpsasti muudetav.

Nüüd, kui oleme kapseldamise põhialustest aru saanud, sukeldugem selle artikli viimasesse teemasse ja mõistame kapseldamist reaalajas näite abil üksikasjalikult.

Reaalajas näide kapseldamisest

Vaatame televisiooni näidet ja mõistame, kuidas sisemise rakenduse üksikasjad on välisklassi eest varjatud.Põhimõtteliselt peidame selles näites sisemise koodi andmed, st kaabliga välisest maailmast pärinevad ahelad. Nüüd sisse , seda saab saavutada juurdepääsu modifikaatorite abil. Juurdepääsu modifikaatorid määravad klassi juurdepääsu või taseme, konstruktorite muutujad jne. Nagu näete allpool olevast koodist, olen klassi juurdepääsu taseme piiramiseks kasutanud privaatset juurdepääsu modifikaatorit. Privaatseks tunnistatud muutujatele on juurdepääs ainult Televisiooni klassis.

avalik klass Televisioon {private double width private double height private double screensize private int maxVolume print int volume private boolean power public Television (double width, double height, double screenSize) {this.width this.height this.screenSize = ScreenSize} public double channelTuning (int channel) {switch (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}} klassikatse {public staatiline void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () television. // Vise viskab, kuna muutuja on privaatne ja sellele ei pääse juurde väljaspool klassi}}

Ülaltoodud näites olen deklareerinud kõik muutujad privaatseks ja meetodid, konstruktorid ja klassi avalikeks. Siin on konstruktoritele ja meetoditele juurdepääs väljaspool klassi. Kui ma loonobjektTelevisiooni klassist pääseb juurde klassis leiduvatele meetoditele ja konstruktoritele, samas kui privaatse juurdepääsu modifikaatoriga deklareeritud muutujad on peidetud. Sellepärast proovite juurde pääseda laiuse muutuja ülaltoodud näites viskabviga. Nii peituvad sisemised rakenduse üksikasjad teiste klasside eest. Nii saavutatakse Java-s kapseldamine.

Sellega jõuame selle artikli lõpuni, mis käsitleb Java-kapseldamist. Loodetavasti leidsite, et see on informatiivne ja aitas teie teadmistele väärtust lisada. Kui soovite Java kohta rohkem teada saada, võite viidata

kuidas kasutada pythoni anakonda

Nüüd, kui olete aru saanud, mis on Java kapseldamine, vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java-programmeerimises alustamine ja õpetada teid nii Java-põhiprogrammide kui ka täiustatud kontseptsioonide ning erinevate Java-raamistike jaoks, nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi “Encapsulation in Java” kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.