Kapselointi Java-kielellä on prosessi, jossa koodi ja data kääritään yhdeksi yksiköksi esimerkiksi kapseli, joka on sekoitettu useista lääkkeistä.
kirjoita json tiedostoon python
Voimme luoda täysin kapseloidun luokan Javalla tekemällä kaikki luokan datajäsenet yksityisiksi. Nyt voimme käyttää setter- ja getter-menetelmiä tietojen asettamiseen ja hakemiseen.
The Java Bean luokka on esimerkki täysin kapseloidusta luokasta.
Javan kapseloinnin etu
Tarjoamalla vain setter- tai getter-menetelmän, voit tehdä luokan vain luku tai kirjoitus . Toisin sanoen voit ohittaa getter- tai setter-menetelmät.
Se tarjoaa sinulle hallita tietoja . Oletetaan, että haluat asettaa id:n arvon, jonka pitäisi olla vain suurempi kuin 100, voit kirjoittaa logiikan setter-menetelmän sisään. Voit kirjoittaa logiikan, että negatiivisia lukuja ei tallenneta setterimenetelmiin.
Se on tapa saavuttaa tietojen piilottaminen Javassa, koska muut luokka ei pääse käsiksi tietoihin yksityisten datajäsenten kautta.
Kapselointiluokka on helppo testata . Joten se on parempi yksikkötestaukseen.
Vakio-IDE:t tarjoavat mahdollisuuden luoda getterit ja asettajat. Niin se on helppo ja nopea luoda kapseloitu luokka Javassa.
Yksinkertainen esimerkki kapseloinnista Javassa
Katsotaanpa yksinkertaista esimerkkiä kapseloinnista, jossa on vain yksi kenttä setter- ja getter-menetelmineen.
Tiedosto: Student.java
//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 } }
Tiedosto: 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
Lähtö:
vijay
Vain luku -luokka
//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; } }
Nyt et voi muuttaa korkeakoulun datajäsenen arvoa, joka on 'AKG'.
s.setCollege('KITE');//will render compile time error
Vain kirjoitusluokka
//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; } }
Nyt et voi saada korkeakoulun arvoa, voit muuttaa vain korkeakoulun datajäsenen arvoa.
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
Toinen esimerkki kapseloinnista Javassa
Katsotaanpa toinen esimerkki kapseloinnista, jossa on vain neljä kenttää setter- ja getter-menetelmineen.
Tiedosto: Account.java
ubuntu build essentials
//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; } }
Tiedosto: 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()); } }Testaa nyt
Lähtö:
7560504000 Sonoo Jaiswal [email protected] 500000.0