Java >> Java Program >  >> Java

Java Encapsulation – Bemästra konceptet med verkliga exempel

Det mest använda och populära tillvägagångssättet för programmeringsspråk, strukturerad programmeringsmetod, visade inte de önskade resultaten i form av felfria, lätta att underhålla och återanvändbara program.

Programmeringsmetoden, Object-Oriented approach (OOP), erbjuder ett nytt och kraftfullt sätt att hantera denna komplexitet. OOP:s tillvägagångssätt är baserat på olika koncept som hjälper till att nå dess mål att övervinna nackdelarna med strukturerade programmeringsmetoder.

Den här artikeln kommer att introducera dig till ett av de mest grundläggande koncepten i OOP som är Encapsulation in Java.

I den här artikeln kommer vi att lära oss i detalj om –

  1. Vad är Java Encapsulation?
  2. Inkapsling i den verkliga världen
  3. Inkapsling – Ett sätt att implementera abstraktion
  4. Att uppnå inkapsling i Java
  5. Fördelar med Java Encapsulation

Håll dig uppdaterad med de senaste tekniktrenderna, Gå med i TechVidvan på Telegram

Vad är Java Encapsulation?

Inkapsling är ett av de mest kraftfulla och grundläggande begreppen inom objektorienterad programmering. Inkapsling, i allmänhet, är handlingen att innesluta eller binda något. I OOP är det ett sätt att kombinera både data och funktioner som fungerar på dessa data, till en enda enhet.

Med andra ord kan vi definiera det som Inkapsling är sammanslagning av data och funktioner (metoder som fungerar på data) till en enda enhet (kallad klass).

Det finns ett förbud mot direktåtkomst till uppgifterna. Funktioner (som kombineras med data) är det enda sättet att komma åt data. Dessa funktioner är medlemsfunktionerna eller metoderna i Java. Det skapar i princip en sköld på grund av vilken koden eller data inte kan nås utanför skölden.

Om du vill läsa dataobjekt i ett objekt anropar du medlemsfunktionen i objektet. Den kommer att läsa dataposten från funktionen och returnera värdet till dig. Du kan inte komma åt data direkt med hjälp av objektet. Datan är dold, så den hålls skyddad och säker från oavsiktlig ändring.

Data och dess metoder sägs vara inkapslade i en enda enhet.

Lär veta mer om Java-metoder i detalj med Techvidvan.

Följande figur visar illustrationen av inkapslingsmetoden:

Inkapsling i den verkliga världen

Låt oss nu överväga analogin till inkapsling i den verkliga världen. I en stor organisation finns det så många avdelningar som försäljning, konton, löner, inköp, produktion, etc. Varje avdelning har sin egen personal eller personal som underhåller dess data.

Anta att en anställd på produktionsavdelningen vill veta mängden råmaterial som har köpts in för nästa månad. Den anställde skulle inte få gå igenom inköpsavdelningens datafiler.

Snarare kommer han att behöva utfärda ett memo till "inköpsavdelningen" och begära den nödvändiga informationen. Sedan kommer några anställda på inköpsavdelningen att gå igenom datafilerna för köp och skicka svaret med den efterfrågade informationen.

Denna praxis säkerställer att användarna kommer åt uppgifterna på ett korrekt sätt och att oexperta utomstående inte korrumperar denna data. Därför kan vi säga att 'data och anställda' av avdelningen kapsla ihop till en enda enhet, avdelningen.

På liknande sätt tillhandahåller objekt ett tillvägagångssätt för programorganisation samtidigt som de hjälper till att upprätthålla integriteten hos programdata.

Inkapsling – Ett sätt att implementera abstraktion

Med hjälp av Encapsulation kan vi tillämpa dataabstraktion. Encapsulation döljer implementeringsdetaljerna för objektet.

Vi kan ofta uppnå Inkapsling genom att dölja data/information. Att dölja data/information är processen att dölja alla oväsentliga egenskaper hos ett objekt och endast visa nödvändiga detaljer.

Objektets struktur, såväl som implementeringen av dess metoder, är osynliga för användarna.

I ovanstående exempel på avdelningen är avdelningarnas väsentliga information synlig som är avdelningsnamn, avdelningschef, antal anställda, etc. Den hemliga informationen som inte är väsentlig är inte synlig som är avdelningsvinst/ förlust, lager etc.

Denna information är endast tillgänglig om det begärs via ett korrekt kanalexempel, utfärdande av ett memo, etc.

Att uppnå inkapsling i Java

För att uppnå inkapsling i Java måste vi −

  • deklarera variablerna för en klass som privata , så att de inte kan nås direkt utanför klassen.
  • tillhandahåll sätter- och gettermetoder som deklareras som offentliga , för att visa och ändra värdena för variablerna.

Dyk lite djupt in i konceptet med Java-variabler och lär dig mer om det.

Nu kommer vi att se den praktiska implementeringen av inkapsling i följande program:

Kod för att förklara konceptet med Encapsulation i Java:

package com.techvidvan.encapsulation;

public class Encapsulation
{
  //Declaring the variables as private
  private String techVidvanName;
  private String techvidvanProfile;
  private int techVidvanAge;

  //declaring 'public' Setter and Getter Methods
  public void setName(String techVidvanName)
  {
    this.techVidvanName = techVidvanName;
  }
  public String getName()
  {
    return techVidvanName;
  }

  public void setProfile(String techVidvanProfile)
  {
    this.techvidvanProfile = techVidvanProfile;
  }
  public String getProfile()
  {
    return techvidvanProfile;
  }

  public void setAge(int techVidvanAge)
  {
    this.techVidvanAge = techVidvanAge;
  }
  public int getAge()
  {
    return techVidvanAge;
  }

  public static void main (String[] args)
  {
    Encapsulation obj = new Encapsulation();

    // setting values of the variables through setter methods
    obj.setName("Avina Garg");
    obj.setAge(22);
    obj.setProfile("Research Analyst Intern");

    // Displaying values of the variables through Getter methods
    System.out.println("Name of the employee: " + obj.getName());
    System.out.println("Age of the employee: " + obj.getAge());
    System.out.println("Profile of the employee: " + obj.getProfile());
  }
}

Utdata:

Den anställdes namn:Avina Garg
Medarbetarens ålder:22
Medarbetarens profil:Forskningsanalytiker Praktikant

I ovanstående kod har vi tre variabler eller datamedlemmar techVidvanName, techVidvanAge och techVidvanProfile. Vi har skapat separata setter- och getter-metoder för alla variabler och använt dessa variabler i samma metoder.

Setter-metoder anger variabelns värde, medan Getter-metoder används för att hämta eller returnera värdena.

Fördelar med Java Encapsulation

Vi har redan sett hur viktigt och väsentligt konceptet Encapsulation är i objektorienterad programmering. Det finns fler fördelar med att använda Encapsulation i Java som vi kommer att diskutera nedan.

1. Döljer data – Encapsulation tillåter programmeraren att dölja de inre klasserna i Java och att endast ge åtkomst till önskade koder till användarna. Det ger också utvecklaren möjlighet att inte låta användarna veta hur data och variabler lagras.

2. Getter- och Setter-metoder – Vi har endast tillgång till privata medlemmar inom samma klass. En klass som finns utanför denna klass kan inte komma åt de privata datamedlemmarna. Om du behöver komma åt dessa privata variabler måste du använda offentlig "setter" och "getter" metoder.

3. Flexibilitet och underhåll – Med hjälp av inkapsling kan vi göra klassens fält som skrivbara (Om vi ​​bara definierar settermetoderna i klassen) eller skrivskyddade (Om vi ​​bara definierar gettermetoderna i klassen) enligt våra krav . Det förbättrar flexibiliteten och underhållbarheten för koden.

För t.ex. i ovanstående kod kan implementeringskoden för void setName (String name) och String getName() ändras när som helst.

4. Återanvändbarhet av kod – Det tillåter programmeraren eller en användare att effektivt använda den befintliga koden om och om igen.

5. Total kontroll – En klass kan ha total kontroll över vad som lagras i dess variabler och fält.

6. Lätt att testa – Med inkapsling blir testningen mycket enkel. Så det är mycket bättre för enhetstestning.

Sammanfattning

Inkapsling är en av kärnan i objektorienterad programmering. Den här funktionen introducerar konceptet "Datahiding". Varje Java-programmerare bör veta hur man implementerar konceptet Encapsulation.

När vi kommer till slutet av den här artikeln diskuterade vi den detaljerade och konceptuella beskrivningen av Java Encapsulation med det verkliga exemplet, så att du enkelt kan relatera det till den verkliga analogin.

Vi täckte också programmet för att implementera inkapslingen i Java. Vi förstod fördelarna med att använda Encapsulation i våra program för att göra dem mer flexibla och effektiva.

Tack för att du läser vår artikel. Dela din feedback genom kommentarsavsnittet nedan.


Java-tagg