Introduksjon om innkapsling i Java

Innkapsling er en av de fire grunnleggende objektorienterte programmeringskonseptene i Java. Hovedideen bak dette er å skjule implementeringsdetaljer fra brukere. Med andre ord, Encapsulation er innpakking av data i en enkelt enhet for å forhindre tilgang til den fra omverdenen. Siden dataene er skjult for de andre klassene, er denne prosessen også kjent som Data-skjul. La oss betrakte bruken av en pære som et eksempel. Vi vet ikke hva som fungerer bak lyspæren, selv om vi bruker den. Men når det gjelder Java Encapsulation, er det mulig å få tilgang til dataene ved å bruke modifikatorer. La oss se nærmere på det i neste avsnitt.

Hvordan fungerer innkapsling i java?

Innkapsling fungerer i Java av

  • Å erklære attributtene eller variablene i klassen som privat

For eksempel oppretter vi en klasse ansatt. Variablene må angis som private som vist nedenfor.

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

  • Lage offentlige metoder i klassen for å få og angi attributter eller variabler.

Følgende er get-metoden og settmetoden for de forskjellige private variablene i klassen Medarbeider.

Kode:

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;
)

Ved hjelp av disse metodene er det mulig å lage klassen bare til å skrive eller skrivebeskyttet, dvs. vi kan hoppe over disse metodene hvis det er behov for det.

Følgende er noen av fordelene med innkapsling.

  • Enkelhet i applikasjonen
  • Mulighet for å gjenbruke eller endre koden basert på kravene
  • Begrenser tilgjengeligheten til data
  • Enkelhet i enhetstesting når koden er innkapslet

Java Bean Class er et av eksemplene for den fullstendig innkapslede klassen da alle datamedlemmer i klassen er private.

Eksempler på Java-innkapsling

La oss se et eksempel på innkapsling med både getter og setter metoder. For det kan du lage to klasser-en med hovedmetode og andre med å få og sette metoder.

Eksempel 1

  • Employee.java

Kode:

//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

Kode:
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());
)
)

Produksjon:

I ovennevnte program er klassen Ansatt innkapslet da variablene er private. Det er mulig å lese og skrive implementeringen siden den har fått og angitt metoder. De private variablene som EmpName, EmpSal, EmpID får tilgang til ved hjelp av disse metodene og vises ved å kalle metodene ved å bruke objektet.

La oss nå se hvordan Innkapsling fungerer med Lesevis-klassen.

Eksempel 2

  • Employee.java

Kode:

//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

Kode:

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());
)
)

Produksjon:

I likhet med det første eksemplet bruker vi også private variabler. Forskjellen er at vi ikke bruker den angitte metoden for å sette verdier for de private variablene i klassen. I stedet tildeler vi verdien direkte til variablene.

Nå kan vi gå videre til å skrive kun klasse.

Eksempel 3

  • Employee.java

Kode:

//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

Kode:

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);
)
)

Produksjon:

I eksemplet ovenfor bruker vi ikke get-metoden for å oppnå bare skriveklasse. dvs. variablene kan ikke endres eller hentes her. Siden det ikke er mulig å få verdiene, bruker vi utskrift i den angitte metoden for prøveutgang.

Konklusjon

Innkapsling er et OOP-konsept der data blir pakket inn og skjuler alle implementeringsdetaljene. Det kan oppnås ved å bruke private variabler og metoder som for å få, satt til å få tilgang til variablene. De viktigste fordelene med innkapsling inkluderer fleksibilitet, skjul av data, letthet i testing og gjenbrukbarhet .

Anbefalte artikler

Dette har vært en guide til Innkapsling i Java. Her diskuterer vi hvordan fungerer innkapsling, eksempler på Java Innkapsling med koder og utdata. Du kan også gå gjennom artiklene våre for å lære mer-

  1. Destructor i Java
  2. Oppsett i Java
  3. Beste Java-kompilatorer
  4. Veiledning for innkapsling i C ++
  5. Hvorfor trenger vi innkapsling i C?
  6. Oversikt over innkapsling i JavaScript