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

Suggested prompts:

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

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