Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Inkapsling | OOP-principer
C# Bortom Grunderna

bookInkapsling

Inkapsling är i grunden en metod för dataorganisering. Det innebär att organisera data och metoder i form av klasser så att hela programmet i princip är uppbyggt kring klasser och att data och metoder är inkapslade inom dessa klasser. Denna inkapsling ger ett sätt att kontrollera åtkomst till ett objekts interna tillstånd, vilket främjar modularitet, underhållbarhet och säkerhet i ett mjukvarusystem.

Vid inkapsling används åtkomstmodifierare som public, private och protected för att dölja de flesta fält och metoder i en klass och endast exponera de som behöver användas utifrån.

Eftersom det mesta av datan är direkt otillgänglig utanför klassen används getters och setters för att komma åt eller ändra datan.

Ett bra exempel är en Customer-klass som definierar en bankkund:

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 exemplet ovan är inget fält direkt åtkomligt eller modifierbart utifrån. Istället används metoder som Deposit och Withdraw för att ändra värdet vid behov. På samma sätt används metoden getBalance för att hämta saldot.

Nyckelordet public bör generellt undvikas om det inte är nödvändigt.

Note
Notera

Som påminnelse: om vi vill hålla ett fält otillgängligt utanför klassen men tillgängligt för ärvda klasser, kan vi använda åtkomstmodifieraren protected.

1. Vilken roll spelar åtkomstmodifierare i inkapsling i C#?

2. Vilken av följande åtkomstspecifikationer bör användas minst för att bevara inkapsling?

question mark

Vilken roll spelar åtkomstmodifierare i inkapsling i C#?

Select the correct answer

question mark

Vilken av följande åtkomstspecifikationer bör användas minst för att bevara inkapsling?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.04

bookInkapsling

Svep för att visa menyn

Inkapsling är i grunden en metod för dataorganisering. Det innebär att organisera data och metoder i form av klasser så att hela programmet i princip är uppbyggt kring klasser och att data och metoder är inkapslade inom dessa klasser. Denna inkapsling ger ett sätt att kontrollera åtkomst till ett objekts interna tillstånd, vilket främjar modularitet, underhållbarhet och säkerhet i ett mjukvarusystem.

Vid inkapsling används åtkomstmodifierare som public, private och protected för att dölja de flesta fält och metoder i en klass och endast exponera de som behöver användas utifrån.

Eftersom det mesta av datan är direkt otillgänglig utanför klassen används getters och setters för att komma åt eller ändra datan.

Ett bra exempel är en Customer-klass som definierar en bankkund:

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 exemplet ovan är inget fält direkt åtkomligt eller modifierbart utifrån. Istället används metoder som Deposit och Withdraw för att ändra värdet vid behov. På samma sätt används metoden getBalance för att hämta saldot.

Nyckelordet public bör generellt undvikas om det inte är nödvändigt.

Note
Notera

Som påminnelse: om vi vill hålla ett fält otillgängligt utanför klassen men tillgängligt för ärvda klasser, kan vi använda åtkomstmodifieraren protected.

1. Vilken roll spelar åtkomstmodifierare i inkapsling i C#?

2. Vilken av följande åtkomstspecifikationer bör användas minst för att bevara inkapsling?

question mark

Vilken roll spelar åtkomstmodifierare i inkapsling i C#?

Select the correct answer

question mark

Vilken av följande åtkomstspecifikationer bör användas minst för att bevara inkapsling?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 6
some-alt