JavaRush /Blog Jawa /Random-JV /Prinsip Enkapsulasi ing Jawa

Prinsip Enkapsulasi ing Jawa

Diterbitake ing grup
Hello! Kuliah dina iki bakal dikhususake kanggo enkapsulasi lan kita bakal langsung miwiti kanthi conto :) Ing ngarep sampeyan ana mesin soda sing wis dikenal. Aku duwe pitakonan kanggo sampeyan: kepiye cara kerjane? Coba njawab kanthi rinci: saka ngendi asale kaca, kepiye suhu ing njero dijaga, ing endi es disimpen, kepiye mesin ngerti apa sirup sing bakal ditambahake, lsp. Paling kamungkinan, sampeyan ora duwe jawaban kanggo pitakonan iki. Mesthi wae, ora kabeh wong nggunakake mesin kasebut, saiki ora populer. Ayo coba menehi conto liyane. Soko sampeyan ngerti sampeyan nggunakake kaping pirang-pirang saben dina. Oh, aku duwe ide! Prinsip enkapsulasi - 2 Marang kita carane mesin telusur Google bisa dianggo . Kepiye carane nggoleki informasi adhedhasar tembung sing sampeyan lebokake? Apa asil kasebut ing ndhuwur lan ora liyane? Sanajan sampeyan nggunakake Google saben dina, sampeyan mbokmenawa ora ngerti. Nanging ora penting. Sawise kabeh, sampeyan ora perlu ngerti iki. Sampeyan bisa ngetik pitakon menyang mesin telusur tanpa mikir babagan cara kerjane. Sampeyan bisa tuku soda saka mesin vending tanpa ngerti cara kerjane. Sampeyan bisa nyopir mobil tanpa mikir babagan operasi mesin pembakaran internal, lan tanpa ngerti fisika, sanajan ing tingkat sekolah. Kabeh iki bisa ditindakake amarga salah sawijining prinsip utama pemrograman berorientasi obyek - enkapsulasi . Nalika maca macem-macem artikel babagan topik iki, sampeyan bisa uga nemokake kasunyatan manawa ana rong konsep umum ing program - encapsulation lan hiding . Lan kanthi tembung "enkapsulasi" penulis tegese siji utawa liyane (kaya sing kedadeyan). Kita bakal ngilangi istilah kasebut supaya sampeyan duwe pangerten lengkap. Makna asli saka tembung " enkapsulasi " ing pemrograman yaiku kombinasi data lan cara nggarap data iki ing siji paket ("kapsul"). Ing Jawa, kelas kasebut minangka paket kapsul . Kelas ngemot data (kolom kelas) lan metode kanggo nggarap data iki. Prinsip Enkapsulasi - 3 Iki katon jelas kanggo sampeyan, nanging ing konsep pemrograman liyane, kabeh bisa digunakake kanthi beda. Contone, ing pemrograman fungsional, data dipisahake saka operasi kasebut. Ing OOP (program berorientasi obyek), program kalebu kelas kapsul, yaiku data lan fungsi kanggo nggarap. Saiki ayo ngomong babagan ndhelikake . Kepiye carane nggunakake macem-macem mekanisme rumit tanpa ngerti cara kerjane lan adhedhasar apa? Iku prasaja: pangripta wis nyedhiyani antarmuka prasaja lan pangguna-loropaken. Ing mesin soda, antarmuka minangka tombol ing panel. Kanthi menet tombol siji, sampeyan milih volume kaca. Kanthi mencet sing kapindho, sampeyan milih sirup. Katelu tanggung jawab kanggo nambah es. Lan iku kabeh sing kudu dilakoni. Ora Matter carane persis mesin dirancang nang. Wangsulan: Bab ingkang utama iku wis dirancang ing kuwi cara sing kanggo njaluk soda, pangguna kudu mencet telung tombol . Iku padha karo mobil. Ora preduli apa sing kedadeyan ing njero dheweke. Wangsulan: Bab ingkang utama iku nalika sampeyan menet pedal tengen, mobil dadi maju, lan nalika sampeyan menet pedal kiwa, iku slows mudhun . Iki sabenere inti saka concealment. Kabeh "jero" program didhelikake saka pangguna. Kanggo dheweke, informasi iki ora perlu lan ora perlu. Pangguna mbutuhake asil pungkasan, dudu proses internal. Ayo katon ing kelas minangka conto Auto:
public class Auto {

   public void gas() {

       /*some complicated things are happening inside the car
       as a result of which it goes forward*/
   }

   public void brake() {

       /*some complicated things are happening inside the car
       as a result of which it slows down*/
   }

   public static void main(String[] args) {

       Auto auto = new Auto();

       // How everything looks to the user

       //pressed one pedal - went
       auto.gas();

       //pressed another pedal - braked
       auto.brake();
   }
}
Iki minangka implementasine ndhelikake katon ing program Jawa. Kabeh kaya ing urip nyata: pangguna diwenehake karo antarmuka (metode). Yen perlu mobil ing program kanggo nindakake tumindak, iku mung kudu nelpon cara sing dikarepake. Lan apa sing kedadeyan ing cara kasebut minangka informasi sing ora perlu, sing utama yaiku kabeh bisa mlaku kaya sing dikarepake. Ing kene kita ngomong babagan ndhelikake implementasine . Kajaba iku, Jawa uga nduweni ndhelikake data . Kita nulis babagan iki ing kuliah babagan getter lan setter , nanging ora bakal ngeling-eling. Contone, kita duwe kelas Cat:
public class Cat {

   public String name;
   public int age;
   public int weight;

   public Cat(String name, int age, int weight) {
       this.name = name;
       this.age = age;
       this.weight = weight;
   }

   public Cat() {
   }

   public void sayMeow() {
       System.out.println("Meow!");
   }


}
Mbok menawa sampeyan kelingan saka kuliah pungkasan apa masalah kelas iki? Yen ora, ayo padha ngelingi. Masalahe yaiku data (bidang) mbukak kanggo kabeh wong, lan programer liyane bisa kanthi gampang nggawe kucing tanpa jeneng ing program kanthi bobot 0 lan umur -1000 taun:
public static void main(String[] args) {

   Cat cat = new Cat();
   cat.name = "";
   cat.age = -1000;
   cat.weight = 0;

}
Ing kahanan kaya mengkono, sampeyan bisa ngawasi kanthi rapet manawa salah sijine kolega nggawe obyek kanthi negara sing salah, nanging luwih becik ngilangi kemungkinan nggawe "obyek sing salah". Prinsip Enkapsulasi - 4 Dheweke mbantu ndhelikake data:
  1. akses modifiers ( pribadi , dilindhungi , paket standar );
  2. getters lan setter.
Ing kono kita bisa, contone, mriksa apa wong nyoba kanggo nemtokake nomer negatif kanggo kucing minangka umur. Kaya sing wis dingerteni sadurunge, panulis macem-macem artikel babagan enkapsulasi tegese enkapsulasi (nggabungake data lan metode), utawa ndhelikake, utawa loro-lorone. Jawa duwe loro mekanisme (iki ora kudu kasus ing basa OOP liyane), supaya pilihan terakhir iku paling bener. Nggunakake enkapsulasi menehi sawetara kaluwihan penting:
  1. Ngawasi kahanan obyek sing bener. Ana conto ing ndhuwur: thanks kanggo setter lan modifier pribadi, kita nglindhungi program saka kucing bobot 0.

  2. Pangguna-loropaken amarga antarmuka. Kita mung ninggalake cara "njaba" kanggo akses pangguna. Kabeh sing kudu ditindakake yaiku nelpon dheweke kanggo entuk asil, lan dheweke ora perlu nyelidiki rincian karyane.

  3. Owah-owahan ing kode ora mengaruhi pangguna. Kita nggawe kabeh owah-owahan ing cara. Iki ora bakal mengaruhi pangguna: dheweke nulis auto.gas () kanggo gas mobil, supaya dheweke bakal nulis. Lan kasunyatan sing kita ngganti soko ing operasi saka gas () cara bakal tetep siro kanggo wong: dheweke, kaya sadurunge, mung bakal nampa asil sing dipengini.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION