Encapsulatie
Encapsulatie is in wezen een methode voor gegevensorganisatie. Het houdt in dat gegevens en methoden worden georganiseerd in de vorm van klassen, zodat het hele programma in feite is gebaseerd op klassen en de gegevens en methoden geëcapsuleerd zijn binnen die klassen. Deze encapsulatie biedt een manier om de toegang tot de interne toestand van een object te beheersen, wat modulariteit, onderhoudbaarheid en beveiliging in een softwaresysteem bevordert.
Bij encapsulatie worden toegangsmodificatoren zoals public
, private
en protected
gebruikt om de meeste velden en methoden van een klasse te verbergen en alleen die te onthullen die van buitenaf gebruikt moeten worden.
Omdat de meeste gegevens direct ontoegankelijk zijn buiten de klasse, worden getters en setters gebruikt om toegang te krijgen tot of wijzigingen aan te brengen in de gegevens.
Een goed voorbeeld is een Customer
-klasse die de klant van een bank definieert:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
In het bovenstaande voorbeeld is geen enkel veld direct toegankelijk of aanpasbaar van buitenaf. In plaats daarvan gebruik je methoden zoals Deposit
en Withdraw
om de waarde aan te passen wanneer dat nodig is. Op dezelfde manier gebruik je de methode getBalance
om de waarde van het saldo te raadplegen.
Het gebruik van het sleutelwoord public
wordt over het algemeen afgeraden, tenzij het noodzakelijk is.
Ter herinnering: als we een veld ontoegankelijk willen houden van buiten de klasse, maar wel toegankelijk voor afgeleide klassen, kunnen we de protected
access modifier gebruiken.
1. Welke rol spelen access modifiers bij encapsulation in C#?
2. Welke van de volgende toegangsmodificatoren dient het minst gebruikt te worden om encapsulatie te behouden?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you provide an example of encapsulation in code?
Why is using public fields discouraged in encapsulation?
How do getters and setters improve security?
Awesome!
Completion rate improved to 2.04
Encapsulatie
Veeg om het menu te tonen
Encapsulatie is in wezen een methode voor gegevensorganisatie. Het houdt in dat gegevens en methoden worden georganiseerd in de vorm van klassen, zodat het hele programma in feite is gebaseerd op klassen en de gegevens en methoden geëcapsuleerd zijn binnen die klassen. Deze encapsulatie biedt een manier om de toegang tot de interne toestand van een object te beheersen, wat modulariteit, onderhoudbaarheid en beveiliging in een softwaresysteem bevordert.
Bij encapsulatie worden toegangsmodificatoren zoals public
, private
en protected
gebruikt om de meeste velden en methoden van een klasse te verbergen en alleen die te onthullen die van buitenaf gebruikt moeten worden.
Omdat de meeste gegevens direct ontoegankelijk zijn buiten de klasse, worden getters en setters gebruikt om toegang te krijgen tot of wijzigingen aan te brengen in de gegevens.
Een goed voorbeeld is een Customer
-klasse die de klant van een bank definieert:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
In het bovenstaande voorbeeld is geen enkel veld direct toegankelijk of aanpasbaar van buitenaf. In plaats daarvan gebruik je methoden zoals Deposit
en Withdraw
om de waarde aan te passen wanneer dat nodig is. Op dezelfde manier gebruik je de methode getBalance
om de waarde van het saldo te raadplegen.
Het gebruik van het sleutelwoord public
wordt over het algemeen afgeraden, tenzij het noodzakelijk is.
Ter herinnering: als we een veld ontoegankelijk willen houden van buiten de klasse, maar wel toegankelijk voor afgeleide klassen, kunnen we de protected
access modifier gebruiken.
1. Welke rol spelen access modifiers bij encapsulation in C#?
2. Welke van de volgende toegangsmodificatoren dient het minst gebruikt te worden om encapsulatie te behouden?
Bedankt voor je feedback!