Innkapsling
Innkapsling er i hovedsak en metode for dataorganisering. Det innebærer å organisere data og metoder i form av klasser, slik at hele programmet i bunn og grunn er basert på klasser, og data og metoder er innkapslet i disse klassene. Denne innkapslingen gir en måte å kontrollere tilgangen til den interne tilstanden til et objekt, og fremmer modularitet, vedlikeholdbarhet og sikkerhet i et programvaresystem.
Ved innkapsling benyttes tilgangsmodifikatorer som public
, private
og protected
for å skjule de fleste feltene og metodene i en klasse, og kun eksponere de som er nødvendige å bruke utenfra.
Siden mesteparten av dataene ikke er direkte tilgjengelige utenfor klassen, brukes gettere og settere for å få tilgang til eller endre dataene.
Et godt eksempel er en Customer
-klasse som definerer en kunde i en bank:

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; } }
I eksempelet ovenfor er ingen felt direkte tilgjengelige eller kan endres utenfra. I stedet bruker du metoder som Deposit
og Withdraw
for å endre verdien når det er nødvendig. Tilsvarende bruker du metoden getBalance
for å få tilgang til saldoen.
Det anbefales generelt å unngå å bruke nøkkelordet public
med mindre det er nødvendig.
Til påminnelse: Hvis vi ønsker å holde et felt utilgjengelig fra utsiden av klassen, men tilgjengelig for avledede klasser, kan vi bruke tilgangsmodifikatoren protected
.
1. Hvilken rolle spiller tilgangsmodifikatorer i innkapsling i C#?
2. Hvilken av følgende tilgangsspesifikatorer bør brukes minst for å bevare innkapsling?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Innkapsling
Sveip for å vise menyen
Innkapsling er i hovedsak en metode for dataorganisering. Det innebærer å organisere data og metoder i form av klasser, slik at hele programmet i bunn og grunn er basert på klasser, og data og metoder er innkapslet i disse klassene. Denne innkapslingen gir en måte å kontrollere tilgangen til den interne tilstanden til et objekt, og fremmer modularitet, vedlikeholdbarhet og sikkerhet i et programvaresystem.
Ved innkapsling benyttes tilgangsmodifikatorer som public
, private
og protected
for å skjule de fleste feltene og metodene i en klasse, og kun eksponere de som er nødvendige å bruke utenfra.
Siden mesteparten av dataene ikke er direkte tilgjengelige utenfor klassen, brukes gettere og settere for å få tilgang til eller endre dataene.
Et godt eksempel er en Customer
-klasse som definerer en kunde i en bank:

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; } }
I eksempelet ovenfor er ingen felt direkte tilgjengelige eller kan endres utenfra. I stedet bruker du metoder som Deposit
og Withdraw
for å endre verdien når det er nødvendig. Tilsvarende bruker du metoden getBalance
for å få tilgang til saldoen.
Det anbefales generelt å unngå å bruke nøkkelordet public
med mindre det er nødvendig.
Til påminnelse: Hvis vi ønsker å holde et felt utilgjengelig fra utsiden av klassen, men tilgjengelig for avledede klasser, kan vi bruke tilgangsmodifikatoren protected
.
1. Hvilken rolle spiller tilgangsmodifikatorer i innkapsling i C#?
2. Hvilken av følgende tilgangsspesifikatorer bør brukes minst for å bevare innkapsling?
Takk for tilbakemeldingene dine!