Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Innkapsling | OOP-Prinsipper
C# Utover Det Grunnleggende

bookInnkapsling

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Merk

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?

question mark

Hvilken rolle spiller tilgangsmodifikatorer i innkapsling i C#?

Select the correct answer

question mark

Hvilken av følgende tilgangsspesifikatorer bør brukes minst for å bevare innkapsling?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

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

bookInnkapsling

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Merk

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?

question mark

Hvilken rolle spiller tilgangsmodifikatorer i innkapsling i C#?

Select the correct answer

question mark

Hvilken av følgende tilgangsspesifikatorer bør brukes minst for å bevare innkapsling?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
some-alt