Enkapsulacija u Javi - Kako svladati OOP-ove pomoću enkapsulacije?



Ovaj članak o Enkapsulaciji u Javi pomoći će vam da razumijete temeljne koncepte skrivanja detalja implementacije, zajedno s raznim jednostavnim primjerima.

Objektno orijentirano programiranje ili poznatiji kao OOP jedan je od glavnih stupova Jave koji je iskoristio svoju snagu i jednostavnost upotrebe. Da biste postali profesionalni programer Java, morate dobiti besprijekornu kontrolu nad različitim Kao , Apstrakcija , Kapsulacija i polimorfizam. Kroz medij ovog članka dat ću vam cjelovit uvid u jedan od najvažnijih koncepata OOP-a, tj. Inkapsulacija u Javi i kako se to postiže.

Ispod su teme o kojima ću raspravljati u ovom članku:





Također možete proći kroz ovu snimku gdje teme možete detaljno razumjeti s primjerima.



Uvod u enkapsulaciju

Inkapsulacija se odnosi na zamatanje podataka u jednoj jedinici. Mehanizam je taj koji veže kod i podatke kojima manipulira. Drugi način razmišljanja o inkapsulaciji je zaštitni štit koji sprječava pristup koda podacima izvan ovog štita. U tome su varijable ili podaci a je skriven od bilo koje druge klase i može mu se pristupiti samo putem bilo koje funkcije člana vlastite klase u kojoj su deklarirani.

Uzmimo sada primjer medicinske kapsule, gdje je lijek uvijek siguran u kapsuli. Slično tome, putem inkapsulacije metode i varijable klase dobro su skrivene i sigurne.



Inkapsulacija -Enkapsulacija u Java-EdurekiInkapsulacija u Javi može se postići:

  • Deklariranje varijabli klase kao privatne.
  • Pružanje javnih metoda postavljača i dobivača za izmjenu i prikaz vrijednosti varijabli.

Sada, pogledajmo kod da bismo bolje razumjeli enkapsulaciju:

javna klasa Student {naziv privatnog niza public String getName () {return name} javna praznina setName (ime niza) {this.name = name}} Test klase {public static void main (String [] args) {Student s = novi student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Kao što možete vidjeti u gornjem kodu, stvorio sam razred Student koji ima privatni Ime . Dalje, stvorio sam getera i postavljača za dobivanje i postavljanje imena učenika. Uz pomoć ovih metoda, bilo koja klasa koja želi pristupiti varijabli imena mora to učiniti pomoću ovih getter i setter metoda.

Ajmo sada vidjeti još jedan primjer i dublje razumjeti Enkapsulaciju. U ovom primjeru klasa Car ima dva polja - name i topSpeed. Ovdje su oba deklarirana kao privatna, što znači da im se ne može pristupiti izravno izvan klase. Imamo neke metode getera i postavljača poput getName, setName, setTopSpeed ​​itd., A one se proglašavaju javnima. Te su metode izložene 'autsajderima' i mogu se koristiti za promjenu i dohvaćanje podataka iz objekta Car. Imamo jednu metodu za podešavanje najveće brzine vozila i dvije metode za dobivanje maksimalne brzine u MPH ili KMHt. U osnovi, ovo je ono što inkapsulacija čini - skriva implementaciju i daje nam vrijednosti koje želimo. Sada, pogledajmo kod u nastavku.

java ima-odnos
paket Edureka javna klasa Car {private String name private double topSpeed ​​javni automobil () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} javni dvostruki getTopSpeedMPH () {return topSpeed} javni dvostruki getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Ovdje glavni program stvara objekt automobila s danim imenom i koristi metodu postavljača za pohranu najveće brzine za ovu instancu. Čineći to, lako možemo dobiti brzinu u miljama milja u satu ili KMH ne vodeći računa o tome kako se brzina pretvara u klasi automobila.

paket Edureka javna klasa Primjer {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4,8-litreni V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'najveća brzina u miljama milja na sat je' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'najveća brzina u KMH je' + car.getTopSpeedKMH ())

So, ovo je način na koji se enkapsulacija može postići u Javi. Idemo sada dalje i vidimo zašto nam je potrebna enkapsulacija.

Zašto nam je potrebna enkapsulacija u Javi?

Inkapsulacija je bitna u Javi jer:

  • Ona kontrolira način pristupa podacima
  • Mijenja kôd na temelju potrebnih podataka
  • Pomaže nam u postizanju labavog para
  • Ostvaruje jednostavnost naše primjene
  • Omogućuje vam i promjenu dijela koda bez ometanja bilo kojih drugih funkcija ili koda prisutnih u programu

Sada, razmotrimo mali primjer koji ilustrira potrebu za inkapsulacijom.

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

U gornjem primjeru sadrži dvije varijable instance kao modifikator pristupa. Dakle, bilo koja klasa unutar istog paketa može dodijeliti i promijeniti vrijednosti tih varijabli stvaranjem objekta te klase. Dakle, nemamo kontrolu nad vrijednostima pohranjenim u klasi Student kao varijable. Kako bismo riješili ovaj problem, inkapsuliramo razred Student.

razlika između final konačno i finalizirati u javi

Dakle, ovo je bilo nekoliko uputa koje prikazuju potrebu za kapsulacijom. Pogledajmo sada neke prednosti enkapsulacije.

Prednosti kapsulacije

    • Sakrivanje podataka: Ovdje korisnik neće imati pojma o unutarnjoj implementaciji klase. Čak ni korisnik neće biti svjestan kako klasa pohranjuje vrijednosti u varijable. Samo će on / ona biti svjestan da vrijednosti prosljeđujemo metodi postavljača i da se varijable inicijaliziraju tom vrijednošću.
    • Povećana fleksibilnost: Ovdje možemo napraviti varijable klase samo za čitanje ili samo za pisanje, ovisno o našim zahtjevima. U slučaju da varijable želite učiniti samo za čitanje, tada moramo izostaviti metode postavljanja poput setName (),setAge() itd. ili ako želimo varijable napraviti samo za pisanje, tada moramo izostaviti metode get poput getName (), getAge () itd. iz gornjeg programa.
    • Mogućnost ponovne upotrebe: Također poboljšava ponovnu upotrebljivost i lako se mijenja s novim zahtjevima.

Sad kad smo shvatili osnove inkapsulacije, zaronimo u posljednju temu ovog članka i detaljno shvatimo Encapsulation uz pomoć primjera u stvarnom vremenu.

Primjer inkapsulacije u stvarnom vremenu

Razmotrimo televizijski primjer i shvatimo kako su detalji unutarnje implementacije skriveni od vanjske klase.U osnovi, u ovom primjeru skrivamo podatke unutarnjeg koda, tj. Sklopove iz vanjskog svijeta na poklopcu. Sada u , to se može postići uz pomoć modifikatora pristupa. Modifikatori pristupa postavljaju pristup ili razinu klase, varijable konstruktora itd. Kao što možete vidjeti u donjem kodu, koristio sam modifikator privatnog pristupa kako bih ograničio razinu pristupa klasi. Varijable deklarirane kao privatne dostupne su samo unutar klase Television.

javna klasa Televizija {privatna dvostruka širina privatna dvostruka visina privatna dvostruka Screensize privatna int maxVolume ispis int volumen privatna booleova snaga javna televizija (dvostruka širina, dvostruka visina, dvostruki ScreenSize) {this.width this.height this.screenSize = ScreenSize} javni dvostruki 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 reduceVolume () {if (0volume) volume ++ return volume}} test klase {public static void main (String args []) {Televizija t = nova televizija (11,5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televizija. // Baca pogrešku jer je varijabla privatna i ne može joj se pristupiti izvan klase}}

U gornjem primjeru sve sam varijable proglasio privatnim, a metode, konstruktore i klasu javnim. Ovdje se konstruktorima i metodama može pristupiti izvan klase. Kad stvaramobjektklase Television, može pristupiti metodama i konstruktorima prisutnim u klasi, dok su varijable deklarirane s modifikatorom privatnog pristupa skrivene. Zato kad pokušate pristupiti varijabla širine u gornjem primjeru bacagreška. Tako se detalji interne implementacije skrivaju od ostalih klasa. Tako se u Javi postiže enkapsulacija.

To nas dovodi do kraja ovog članka o “Kapsulaciji u Javi”. Nadam se da vam je to bilo informativno i pomoglo je u dodavanju vrijednosti vašem znanju. Ako želite saznati više o Javi, možete se obratiti

Sad kad ste shvatili 'što je enkapsulacija u Javi', pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA dizajniran je za studente i profesionalce koji žele biti programer Java. Tečaj je dizajniran da vam pruži početnu prednost u Java programiranju i osposobi vas za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'Enkapsulacija u Javi', a mi ćemo vam se javiti što je prije moguće.