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
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!