Introduktion til indkapsling i Java

Indkapsling er en af ​​de fire grundlæggende objektorienterede programmeringskoncepter i Java. Hovedideen bag dette er at skjule implementeringsdetaljer fra brugere. Med andre ord er indkapsling indpakning af data i en enkelt enhed for at forhindre adgang til dem fra omverdenen. Da dataene er skjult for de andre klasser, er denne proces også kendt som Data-skjul. Lad os betragte brugen af ​​en pære som et eksempel. Vi kender ikke det faktiske arbejde bag pæren, selvom vi bruger den. Men i tilfælde af Java Encapsulation er det muligt at få adgang til dataene ved hjælp af modifikatorer. Lad os undersøge det i det næste afsnit.

Hvordan fungerer indkapsling i java?

Indkapsling fungerer i Java af

  • Erklæring af attributter eller variabler i klassen som privat

For eksempel opretter vi en klasse medarbejder. Variablerne skal indstilles som private som vist nedenfor.

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

  • Oprettelse af offentlige metoder i klassen for at få og indstille attributter eller variabler.

Følgende er get-metoden og sæt-metoden for de forskellige private variabler i klassen Medarbejder.

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 hjælp af disse metoder er det muligt at lave klassen kun til skrivning eller skrivebeskyttelse, dvs. vi kan springe disse metoder over, hvis det er nødvendigt.

Følgende er nogle af fordelene ved indkapsling.

  • Enkelhed i anvendelse
  • Mulighed for at genbruge eller ændre koden baseret på kravene
  • Begrænser tilgængeligheden af ​​data
  • Brugervenlighed i enhedstestning, når koden er indkapslet

Java Bean Class er et af eksemplerne for den fuldt indkapslede klasse, da alle datamedlemmer i klassen er private.

Eksempler på Java-indkapsling

Lad os se et eksempel på Indkapsling med både getter og setter metoder. For at oprette 2 klasser-en med hovedmetode og anden med få og sæt 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());
)
)

Produktion:

I ovenstående program er klassen Medarbejder indkapslet, da variablerne er private. Det er muligt at læse og skrive implementeringen, da den har fået og indstillet metoder. De private variabler som EmpName, EmpSal, EmpID fås ved hjælp af disse metoder og vises ved at kalde metoderne ved hjælp af objektet.

Lad os nu se, hvordan Indkapsling fungerer med skrivebeskyttet klasse.

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

Produktion:

Som det første eksempel bruger vi også private variabler. Forskellen er, at vi ikke bruger den indstillede metode til at indstille værdier for de private variabler i klassen. I stedet tildeler vi værdien direkte til variablerne.

Nu kan vi gå videre til kun at skrive 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);
)
)

Produktion:

I ovenstående eksempel bruger vi ikke get-metoden til at opnå skriveklasse. dvs. variablerne kan ikke ændres eller hentes her. Da det ikke er muligt at få værdierne, bruger vi udskrivning inden for den indstillede metode til prøveudgang.

Konklusion

Indkapsling er et OOP-koncept, hvor data bliver indpakket og skjuler alle implementeringsdetaljer. Det kan opnås ved at bruge private variabler og metoder, såsom at få, indstillet til at få adgang til variablerne. De største fordele ved indkapsling inkluderer fleksibilitet, skjul af data, lethed i test og genanvendelighed .

Anbefalede artikler

Dette har været en guide til Indkapsling i Java. Her diskuterer vi, hvordan fungerer indkapsling, eksempler på Java-indkapsling med koder og output. Du kan også gennemgå vores givne artikler for at lære mere-

  1. Destructor i Java
  2. Layout i Java
  3. Bedste Java-kompilatorer
  4. Vejledning til indkapsling i C ++
  5. Hvorfor har vi brug for indkapsling i C?
  6. Oversigt over indkapsling i JavaScript

Kategori: