Johdatus kapselointiin Java: ssa

Kotelointi on yksi neljästä Java-objektiohjelman perusperiaatteesta. Tärkein idea on toteutustietojen piilottaminen käyttäjiltä. Toisin sanoen kapselointi on tietojen käärimistä yhdeksi yksiköksi, jotta estetään pääsy tietoihin ulkomaailmasta. Koska tiedot ovat piilossa muista luokista, tätä prosessia kutsutaan myös nimellä Data piilottaminen. Tarkastellaan esimerkiksi lampun toimintaa. Emme tiedä polttimon takana olevaa todellista työskentelyä, vaikka käyttäisimme sitä. Mutta Java-kapseloinnin tapauksessa tietoihin on mahdollista päästä muokkainten avulla. Katsotaanpa sitä seuraavaan kohtaan.

Kuinka kapselointi toimii javassa?

Kotelointi toimii Java

  • Julistetaan luokan määritteet tai muuttujat yksityisiksi

Esimerkiksi olemme luomassa luokan työntekijää. Muuttujat on asetettava yksityisiksi, kuten alla on esitetty.

private String EmpName;
private int EmpID;
private int EmpSal;

  • Luodaan julkisia menetelmiä luokkaan määritteiden tai muuttujien saamiseksi ja asettamiseksi.

Seuraava on get-menetelmä ja asetettu menetelmä työntekijän luokan yksityisille muuttujille.

Koodi:

public int getEmpSal()
(
return EmpSal;
)public String getEmpName()
(
return EmpName;
)
public int getEmpID()
(
return EmpID;
)
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)

Näitä menetelmiä käyttämällä on mahdollista tehdä luokasta kirjoitus tai vain luku, ts. Voimme ohittaa nämä menetelmät tarvittaessa.

Seuraavassa on joitain kapseloinnin etuja.

  • Yksinkertaisuus sovelluksessa
  • Kyky käyttää uudelleen tai muokata koodia vaatimusten perusteella
  • Rajoittaa tietojen saatavuutta
  • Yksikkötestauksen helppous, kun koodi on kapseloitu

Java Bean -luokka on yksi esimerkkejä täysin kapseloidusta luokasta, koska kaikki luokan tietojäsenet ovat yksityisiä.

Esimerkkejä Java-kapseloinnista

Katsokaamme esimerkki kapseloinnista sekä getter- että setter-menetelmillä. Luo sitä varten 2 luokkaa - yksi päämenetelmällä ja toinen - hankkimalla ja asettamalla menetelmiä.

Esimerkki 1

  • Employee.java

Koodi:

//Java program for Encapsulation with both read and write
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(
return EmpSal;
)
// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
)
// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
)
)

  • EmployeeEncaps.java

Koodi:
public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Anna");
EmpObj.setEmpSal(30000);
EmpObj.setEmpID(670311);
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

lähtö:

Yllä olevaan ohjelmaan luokka Työntekijä kapseloidaan, koska muuttujat ovat yksityisiä. Toteutusta on mahdollista lukea ja kirjoittaa, koska se on saanut ja asettanut menetelmät. Yksityisiin muuttujiin, kuten EmpName, EmpSal, EmpID, päästään näiden menetelmien avulla ja ne näytetään kutsumalla menetelmiä objektin avulla.

Katsotaanpa nyt, kuinka Encapsulation toimii vain luku -tyyppisen luokan kanssa.

Esimerkki 2

  • Employee.java

Koodi:

//Java program for Encapsulation with read permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName = "Adam";
private int EmpID = 670388;
private int EmpSal = 35000;
// get method to access the private integer variable EmpSal
public int getEmpSal()
(return EmpSal;
)// get method to access the private string variable EmpName
public String getEmpName()
(
return EmpName;
)
// get method to access the private integer variable EmpID
public int getEmpID()
(
return EmpID;
)
)

  • EmployeeEncaps.java

Koodi:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj= new Employee(); //object of the class Employee
// Printing values of the variables
System.out.println("Employee's Name: " + EmpObj.getEmpName());
System.out.println("Employee's ID: " + EmpObj.getEmpID());
System.out.println("Employee's Salary: " + EmpObj.getEmpSal());
)
)

lähtö:

Kuten ensimmäisessä esimerkissä, tässäkin käytetään yksityisiä muuttujia. Ero on siinä, että emme käytä asetettua menetelmää arvojen asettamiseen luokan yksityisille muuttujille. Sen sijaan, me annamme arvon suoraan muuttujille.

Nyt voimme siirtyä kirjoittamaan vain luokkaa.

Esimerkki 3

  • Employee.java

Koodi:

//Java program for Encapsulation with write permission
public class Employee (
//private variables which can be accessed by public methods of the class
private String EmpName;
private int EmpID;
private int EmpSal;
// set method to access the private integer variable EmpSal
public void setEmpSal( int EmpSal)
(
this.EmpSal = EmpSal;
//for sample output
System.out.println("Employee's Salary: " + EmpSal);
)
// set method to access the private string variable EmpName
public void setEmpName(String EmpName)
(
this.EmpName = EmpName;
//for sample output
System.out.println("Employee's Name: " + EmpName);
)// set method to access the private integer variable EmpID
public void setEmpID( int EmpID)
(
this.EmpID = EmpID;
//for sample output
System.out.println("Employee's ID: " + EmpID);
)
)

  • EmployeeEncaps.java

Koodi:

public class EmployeeEncaps (
public static void main(String() args) (
Employee EmpObj = new Employee(); //object of the class Employee
//passing the values to the methods using object
EmpObj.setEmpName("Iza");
EmpObj.setEmpID(670472);
EmpObj.setEmpSal(48000);
)
)

lähtö:

Yllä olevassa esimerkissä emme käytä get-menetelmää vain kirjoitusluokan saavuttamiseksi. ts. muuttujia ei voi muuttaa tai hakea täältä. Koska arvoja ei ole mahdollista saada, käytämme tulostusta näytteen tulostuksessa asetetun menetelmän sisällä.

johtopäätös

Kapselointi on OOP-konsepti, jossa tiedot kääritään piilottamalla kaikki toteutuksen yksityiskohdat. Se voidaan saavuttaa käyttämällä yksityisiä muuttujia ja menetelmiä, kuten saada, asettaa pääsy muuttujiin. Kapseloinnin tärkeimpiä etuja ovat joustavuus, tietojen piilottaminen, testauksen helppous ja uudelleenkäytettävyys .

Suositellut artikkelit

Tämä on opas kapselointiin Java: ssa. Tässä keskustellaan kuinka kapselointi toimii, esimerkkejä Java-kapseloinnista koodeilla ja tulostuksella. Voit myös käydä annettujen artikkeleidemme läpi oppiaksesi lisää-

  1. Tuhoaja Java
  2. Asettelu Java-tilassa
  3. Parhaat Java-kääntäjät
  4. Opas kapselointiin C ++: ssa
  5. Miksi kapselointia tarvitaan C: hen?
  6. Katsaus kapselointiin JavaScriptiin