Encapsulation sa Java - Paano makabisado ang OOPs na may Encapsulation?



Ang artikulong ito sa Encapsulation in Java ay makakatulong sa iyo na maunawaan ang pangunahing mga konsepto ng pagtatago ng mga detalye ng pagpapatupad kasama ang iba't ibang mga simpleng halimbawa.

Ang Programming na Nakatuon sa Bagay o mas kilala sa tawag na OOPs ay isa sa mga pangunahing haligi ng Java na napakinabangan ang lakas at kadalian ng paggamit nito. Upang maging isang propesyonal na developer ng Java, dapat kang makakuha ng isang walang kamali-mali na kontrol sa iba't-ibang katulad , Abstraction , Encapsulation, at Polymorphism. Sa pamamagitan ng daluyan ng artikulong ito, bibigyan kita ng isang kumpletong pananaw sa isa sa pinakamahalagang mga konsepto ng OOP ie ang Encapsulation sa Java at kung paano ito nakakamit.

Nasa ibaba ang mga paksa, tatalakayin ko sa artikulong ito:





Maaari mo ring daanan ang recording na ito ng kung saan maaari mong maunawaan ang mga paksa sa isang detalyadong pamamaraan na may mga halimbawa.



i-convert ang doble sa integer java

Panimula sa Encapsulation

Ang encapsulation ay tumutukoy sa pambalot ng data sa ilalim ng iisang yunit. Ito ang mekanismo na nagbubuklod ng code at ng data na manipulahin nito. Ang isa pang paraan upang mag-isip tungkol sa encapsulation ay, ito ay isang proteksiyon na kalasag na pumipigil sa data na ma-access ng code sa labas ng kalasag na ito. Dito, ang mga variable o data ng a ay nakatago mula sa anumang iba pang klase at mai-access lamang sa pamamagitan ng anumang pag-andar ng miyembro ng sariling klase kung saan sila ay idineklara.

Ngayon, kumuha tayo ng halimbawa ng isang medikal na kapsula, kung saan ang gamot ay laging ligtas sa loob ng kapsula. Katulad nito, sa pamamagitan ng encapsulation, ang mga pamamaraan at variable ng isang klase ay nakatago at ligtas.



Encapsulation -Encapsulation sa Java-EdurekaAng Encapsulation sa Java ay maaaring makamit sa pamamagitan ng:

  • Pagdeklara ng mga variable ng isang klase bilang pribado.
  • Ang pagbibigay ng mga pampublikong setter at getter na pamamaraan upang baguhin at tingnan ang mga halaga ng variable.

Ngayon, tingnan natin ang code upang makakuha ng mas mahusay na pag-unawa sa encapsulation:

pampublikong klase Mag-aaral {pribadong pangalan ng String 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 ())}}

Tulad ng nakikita mo sa code sa itaas, lumikha ako ng isang mag-aaral sa klase na mayroong isang pribado pangalan . Susunod, lumikha ako ng isang getter at setter upang makuha at maitakda ang pangalan ng isang mag-aaral. Sa tulong ng mga pamamaraang ito, ang anumang klase na nais mag-access sa variable ng pangalan ay kailangang gawin ito gamit ang mga getter at setter na pamamaraan.

Ngayon tingnan natin ang isa pang halimbawa at maunawaan ang Encapsulation nang malalim. Sa halimbawang ito, ang klase ng Kotse ay may dalawang mga patlang –pangalan at topSpeed. Dito, parehong ipinahayag bilang pribado, nangangahulugang hindi sila maaaring ma-access nang direkta sa labas ng klase. Mayroon kaming ilang mga pamamaraan ng getter at setter tulad ng getName, setName, setTopSpeed ​​atbp, at idineklara silang publiko. Ang mga pamamaraang ito ay nakalantad sa 'mga tagalabas' at maaaring magamit upang baguhin at makuha ang data mula sa object ng Car. Mayroon kaming isang paraan upang maitakda ang pinakamataas na bilis ng sasakyan at dalawang pamamaraan ng getter upang makuha ang halaga ng maximum na bilis alinman sa MPH o KMHt. Kaya karaniwang, ito ang ginagawa ng encapsulation - itinatago nito ang pagpapatupad at binibigyan kami ng mga halagang nais namin. Ngayon, tingnan natin ang code sa ibaba.

package Edureka public class Car {pribadong pangalan ng String pribadong dobleng topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} pampubliko na doble getTopSpeedMPH () {return topSpeed} pampubliko na doble getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Dito, lumilikha ang pangunahing programa ng isang bagay sa Kotse na may ibinigay na pangalan at ginagamit ang pamamaraan ng setter upang maiimbak ang pinakamataas na bilis para sa pagkakataong ito. Sa paggawa nito, madali nating makukuha ang bilis sa MPH o KMH nang hindi nagmamalasakit tungkol sa kung paano nabago ang bilis sa klase ng Kotse.

package Edureka public class Halimbawa {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-litro V8') car.setTopSpeed ​​(201) System.out.println (kotse. getName () + 'nangungunang bilis sa MPH ay' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'nangungunang bilis sa KMH ay' + car.getTopSpeedKMH ())

So, ganito makakamit ang Encapsulation sa Java. Ngayon, lumipat tayo nang malayo at tingnan kung bakit kailangan natin ng Encapsulation.

Bakit kailangan namin ng Encapsulation sa Java?

Mahalaga ang encapsulation sa Java dahil:

kung paano i-convert ang string sa petsa
  • Kinokontrol nito ang paraan ng pag-access sa data
  • Binabago ang code batay sa mga hinihiling
  • Tumutulong sa amin upang makamit ang isang maluwag na mag-asawa
  • Nakakamit ang pagiging simple ng aming application
  • Pinapayagan ka ring baguhin ang bahagi ng code nang hindi nakakagambala sa anumang iba pang mga pagpapaandar o code na naroroon sa programa

Ngayon, isaalang-alang natin ang isang maliit na halimbawa na naglalarawan ng pangangailangan para sa encapsulation.

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

Sa halimbawa sa itaas, naglalaman ito ng dalawang mga variable ng halimbawa bilang modifier ng pag-access. Kaya't ang anumang klase sa loob ng parehong pakete ay maaaring magtalaga at magbago ng mga halaga ng mga variable na iyon sa pamamagitan ng paglikha ng isang bagay ng klase na iyon. Sa gayon, wala kaming kontrol sa mga halagang nakaimbak sa klase ng Mag-aaral bilang mga variable. Upang malutas ang problemang ito, nai-encapsulate namin ang klase ng Mag-aaral.

Kaya, ito ang ilang mga payo na naglalarawan sa pangangailangan ng Encapsulation. Ngayon, tingnan natin ang ilang mga pakinabang ng encapsulation.

Mga Pakinabang ng Encapsulation

    • Pagtatago ng Data: Dito, ang isang gumagamit ay walang ideya tungkol sa panloob na pagpapatupad ng klase. Kahit na ang gumagamit ay hindi magkaroon ng kamalayan kung paano ang klase ay nag-iimbak ng mga halaga sa mga variable. Malalaman lamang niya na ipinapasa namin ang mga halaga sa isang setter na pamamaraan at ang mga variable ay nasisimulan sa halagang iyon.
    • Nadagdagang kakayahang umangkop: Dito, maaari nating gawin ang mga variable ng klase bilang read-only o pagsulat lamang depende sa aming kinakailangan. Kung sakaling nais mong gawin ang mga variable bilang read-only kung gayon kailangan naming alisin ang mga pamamaraan ng setter tulad ng setName (),setAge() atbp o kung nais naming gawin ang mga variable bilang panulat-lamang dapat nating alisin ang mga pamamaraan ng pagkuha tulad ng getName (), getAge () atbp mula sa nabanggit na programa.
    • Reusability: Pinapabuti din nito ang muling kakayahang magamit at madaling mabago gamit ang mga bagong kinakailangan.

Ngayon na naintindihan na natin ang mga pangunahing kaalaman ng encapsulation, sumisid tayo sa huling paksa ng artikulong ito at maunawaan nang detalyado ang Encapsulation sa tulong ng isang real-time na halimbawa.

lumikha ng isang naka-link na listahan sa c

Isang Real-Time na Halimbawa ng Encapsulation

Isaalang-alang natin ang isang halimbawa sa telebisyon at maunawaan kung paano nakatago ang mga detalye sa panloob na pagpapatupad mula sa klase sa labas.Talaga, sa halimbawang ito, nagtatago kami ng data ng panloob na code ibig sabihin, mga circuit mula sa panlabas na mundo sa pamamagitan ng pabalat. Ngayon sa , maaari itong makamit sa tulong ng mga modifier ng pag-access. Ang mga modifier ng pag-access ay itinakda ang pag-access o antas ng isang klase, mga variable ng konstruktor atbp Tulad ng nakikita mo sa ibaba ng code, gumamit ako ng pribadong access modifier upang paghigpitan ang antas ng pag-access ng klase. Ang mga variable na idineklara bilang pribado ay maa-access lamang sa loob ng klase sa Telebisyon.

pampublikong klase ng Telebisyon {pribadong dobleng lapad pribadong dobleng taas pribadong dobleng Pag-screen ng pribadong int maxVolume print int volume pribadong boolean power pampublikong Telebisyon (dobleng lapad, dobleng taas, dobleng screenSize) {this. malalim ito.taas this.screenSize = ScreenSize} pampublikong dobleng 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 diminVolume () {if (0volume) volume ++ return volume}} class test {public static void main (String args []) {Telebisyon t = bagong Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () telebisyon. // Nagtatapon ng error bilang variable ay pribado at hindi ma-access sa labas ng klase}}

Sa halimbawa sa itaas, naideklara ko ang lahat ng mga variable bilang pribado at mga pamamaraan, tagapagbuo at klase bilang publiko. Dito, mga konstruktor, pamamaraan ay maaaring ma-access sa labas ng klase. Pag likha koisang bagayng klase sa Telebisyon, maaari itong ma-access ang mga pamamaraan at tagapagbuo na naroroon sa klase, samantalang ang mga variable na idineklara na may pribadong access modifier ay nakatago. Iyon ang dahilan kung bakit kapag sinubukan mong mag-access variable ng lapad sa halimbawa sa itaas, nagtatapon itoisang error. Iyon ay kung paano nakatago ang mga detalye ng panloob na pagpapatupad mula sa iba pang mga klase. Ito ay kung paano nakakamit ang Encapsulation sa Java.

Dinadala tayo nito sa pagtatapos ng artikulong ito sa 'Encapsulation in Java'. Sana, nalaman mong may kaalaman ito at nakatulong ito sa pagdaragdag ng halaga sa iyong kaalaman. Kung nais mong malaman ang tungkol sa Java, maaari kang sumangguni sa

Ngayon na naintindihan mo ang 'ano ang Encapsulation sa Java', tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na 'Encapsulation in Java' at babalikan ka namin sa lalong madaling panahon.