Inkapsuliavimas Java yra procesas, kai kodas ir duomenys sujungiami į vieną vienetą , pavyzdžiui, kapsulė, sumaišyta iš kelių vaistų.
Mes galime sukurti visiškai integruotą klasę Java, padarydami visus klasės duomenų narius privačius. Dabar duomenims nustatyti ir gauti galime naudoti setter ir getter metodus.
The Java pupelės klasė yra visiškai inkapsuliuotos klasės pavyzdys.
interneto trūkumai
„Java“ inkapsuliavimo pranašumas
Pateikdami tik nustatymo arba geterio metodą, galite sukurti klasę tik skaitomas arba tik rašomas . Kitaip tariant, galite praleisti geter arba setter metodus.
Jis suteikia jums kontroliuoti duomenis . Tarkime, kad norite nustatyti id reikšmę, kuri turėtų būti didesnė nei 100, logiką galite įrašyti nustatymo metodo viduje. Galite parašyti logiką, kad neigiamų skaičių neišsaugotumėte nustatymo metoduose.
python programavimo pavyzdžiai
Tai būdas pasiekti duomenų slėpimas Java, nes kita klasė negalės pasiekti duomenų per privačius duomenų narius.
Kapsulių klasė yra lengva išbandyti . Taigi, geriau atlikti vienetų testavimą.
Standartiniai IDE suteikia galimybę generuoti geterius ir nustatytojus. Taigi, tai yra lengva ir greita sukurti inkapsuliuotą klasę Java kalboje.
Paprastas „Java“ kapsuliavimo pavyzdys
Pažiūrėkime paprastą inkapsuliavimo pavyzdį, kuriame yra tik vienas laukas su nustatymo ir gaudymo metodais.
Failas: Student.java
mysql visų vartotojų sąrašas
//A Java class which is a fully encapsulated class. //It has a private data member and getter and setter methods. package com.javatpoint; public class Student{ //private data member private String name; //getter method for name public String getName(){ return name; } //setter method for name public void setName(String name){ this.name=name } }
Failas: Test.java
//A Java class to test the encapsulated class. package com.javatpoint; class Test{ public static void main(String[] args){ //creating instance of the encapsulated class Student s=new Student(); //setting value in the name member s.setName('vijay'); //getting value of the name member System.out.println(s.getName()); } }
Compile By: javac -d . Test.java Run By: java com.javatpoint.Test
Išvestis:
vijay
Tik skaitymo klasė
//A Java class which has only getter methods. public class Student{ //private data member private String college='AKG'; //getter method for college public String getCollege(){ return college; } }
Dabar negalite pakeisti kolegijos duomenų nario reikšmės, kuri yra „AKG“.
s.setCollege('KITE');//will render compile time error
Tik rašymo klasė
//A Java class which has only setter methods. public class Student{ //private data member private String college; //getter method for college public void setCollege(String college){ this.college=college; } }
Dabar jūs negalite gauti kolegijos vertės, galite pakeisti tik kolegijos duomenų nario vertę.
romėniškas skaitmuo nuo 1 iki 100
System.out.println(s.getCollege());//Compile Time Error, because there is no such method System.out.println(s.college);//Compile Time Error, because the college data member is private. //So, it can't be accessed from outside the class
Kitas „Java“ kapsuliavimo pavyzdys
Pažiūrėkime kitą inkapsuliavimo pavyzdį, kuriame yra tik keturi laukai su nustatymo ir gaudymo metodais.
Failas: Account.java
//A Account class which is a fully encapsulated class. //It has a private data member and getter and setter methods. class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } }
Failas: TestAccount.java
//A Java class to test the encapsulated class Account. public class TestEncapsulation { public static void main(String[] args) { //creating instance of Account class Account acc=new Account(); //setting values through setter methods acc.setAcc_no(7560504000L); acc.setName('Sonoo Jaiswal'); acc.setEmail('[email protected]'); acc.setAmount(500000f); //getting values through getter methods System.out.println(acc.getAcc_no()+' '+acc.getName()+' '+acc.getEmail()+' '+acc.getAmount()); } }Išbandykite dabar
Išvestis:
7560504000 Sonoo Jaiswal [email protected] 500000.0