Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Inkapseling in Java OOP's met voorbeeld


Wat is inkapseling in Java?

Inkapseling in Java is een mechanisme om variabelen (gegevens) en methoden (code) samen te voegen als een enkele eenheid. Het is het proces van het verbergen van informatiedetails en het beschermen van gegevens en gedrag van het object. Het is een van de vier belangrijke OOP-concepten. De encapsulate-klasse is gemakkelijk te testen, dus het is ook beter voor unit-testen.

In deze tutorial leer je-

  • Wat is inkapseling in Java?
  • Leer inkapseling met een voorbeeld
  • Gegevens verborgen in Java
  • Getter- en Setter-methoden in Java
  • Abstractie versus inkapseling
  • Voordelen van inkapseling in Java

Klik hier als de video niet toegankelijk is

Leer inkapselen met een voorbeeld

Om in detail te begrijpen wat inkapseling is, overweeg dan de volgende bankrekeningklasse met stortings- en toonsaldomethoden

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        //code to show data 
    }

    public void deposit(int a) {
        if (a < 0) {
            //show error 
        } else
            account_balance = account_balance + a;
    }
}

Stel dat een hacker toegang heeft weten te krijgen tot de code van uw bankrekening. Nu probeert hij op twee manieren een bedrag van -100 op uw rekening te storten. Laat zijn eerste methode of aanpak zien.

Benadering 1: Hij probeert een ongeldig bedrag (zeg -100) op uw bankrekening te storten door de code te manipuleren.

Nu is de vraag:Is dat mogelijk? Laat het onderzoeken.

Gewoonlijk wordt een variabele in een klasse ingesteld als "privé", zoals hieronder wordt weergegeven. Het is alleen toegankelijk met de methoden die in de klasse zijn gedefinieerd. Geen enkele andere klasse of object heeft er toegang toe.

Als een gegevenslid privé is, betekent dit dat het alleen toegankelijk is binnen dezelfde klasse. Geen enkele klas van buiten heeft toegang tot privégegevenslid of variabele van een andere klas.

Dus in ons geval kan de hacker geen bedrag van -100 op uw account storten.

Benadering 2 :Hacker's eerste benadering slaagde er niet in het bedrag te storten. Vervolgens probeert hij een bedrag van -100 te storten door gebruik te maken van de “storting”-methode.

Maar de implementatie van de methode heeft een controle op negatieve waarden. Dus de tweede benadering faalt ook.

Zo stel je je gegevens nooit bloot aan een externe partij. Dat maakt je applicatie veilig.

De hele code kan worden gezien als een capsule, en je kunt alleen communiceren via de berichten. Vandaar de naam inkapseling.

Gegevens verbergen in Java

Gegevens verborgen in Java verbergt de variabelen van een klasse voor andere klassen. Het is alleen toegankelijk via de methode van hun huidige klasse. Het verbergt de implementatiedetails voor de gebruikers. Maar meer dan het verbergen van gegevens, is het bedoeld voor een beter beheer of groepering van gerelateerde gegevens.

Om een ​​lagere mate van inkapseling in Java te bereiken, kunt u modifiers gebruiken zoals "protected" of "public". Met inkapseling kunnen ontwikkelaars een deel van de code gemakkelijk wijzigen zonder andere te beïnvloeden.

Getter en Setter in Java

Getter en Setter in Java zijn twee conventionele methoden die worden gebruikt om waarden van een variabele op te halen en bij te werken. Ze worden voornamelijk gebruikt om de variabelewaarden aan te maken, te wijzigen, te verwijderen en te bekijken. De setter-methode wordt gebruikt voor het bijwerken van waarden en de getter-methode wordt gebruikt voor het lezen of ophalen van de waarden. Ze worden ook wel accessor en mutator genoemd.

De volgende code is een voorbeeld van getter- en setter-methoden:

class Account{ 
private int account_number;
private int account_balance; 
    // getter method
	public int getBalance() {
        return this.account_balance;
    }
    // setter method
	public void setNumber(int num) {
        this.account_number = num;
    }
}

In het bovenstaande voorbeeld is de getBalance()-methode de getter-methode die de waarde van de variabele account_balance leest en de setNumber()-methode is de setter-methode die de waarde voor de variabele account_number instelt of bijwerkt.


Abstractie versus inkapseling

Vaak wordt inkapseling verkeerd begrepen met Abstractie. Laten we studeren-

  • Inkapseling gaat meer over "hoe" een functionaliteit te bereiken
  • Abstractie gaat meer over 'wat' een klas kan.

Een eenvoudig voorbeeld om dit verschil te begrijpen is een mobiele telefoon. Waar de complexe logica in de printplaat is ingekapseld in een aanraakscherm en de interface is voorzien om deze te abstraheren.

Voordelen van inkapseling in Java

  • Inkapseling bindt de gegevens met de bijbehorende functionaliteiten. Functionaliteiten betekenen hier "methoden" en gegevens "variabelen"
  • Dus we houden variabelen en methoden op één plek. Die plaats is 'klasse'. Klasse is de basis voor inkapseling.
  • Met Java Encapsulation kunt u kritieke gegevensleden in uw code verbergen (toegang beperken), wat de beveiliging verbetert
  • Zoals we eerder hebben besproken, als een gegevenslid als "privé" wordt verklaard, is het alleen toegankelijk binnen dezelfde klasse. Geen enkele klas van buiten heeft toegang tot gegevenslid (variabele) van een andere klas.
  • Als u echter toegang nodig heeft tot deze variabelen, moet u openbare "getter" en "setter" gebruiken methoden.

Java

  1. Java-inkapseling
  2. Java Type Casting
  3. OOPs-concepten in Java | Wat is, Basis met voorbeelden
  4. String Length() Methode in Java:Hoe te vinden met Voorbeeld
  5. Java String charAt() Methode met Voorbeeld
  6. Java String bevat() Methode | Controleer subtekenreeks met voorbeeld
  7. Java String endsWith() Methode met voorbeeld
  8. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  9. Invoegsorteeralgoritme in Java met programmavoorbeeld
  10. Selectie sorteren in Java-programma met voorbeeld
  11. Java - Inkapseling