Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kapselointi | OOP-Periaatteet
C# Perusteiden Jälkeen

bookKapselointi

Kapselointi on pohjimmiltaan tapa järjestää tietoa. Siinä tiedot ja metodit järjestetään luokkien muotoon, jolloin koko ohjelma perustuu luokkiin ja tiedot sekä metodit ovat kapseloituina näihin luokkiin. Tämä kapselointi mahdollistaa tavan hallita olion sisäisen tilan saatavuutta, edistäen ohjelmiston modulaarisuutta, ylläpidettävyyttä ja turvallisuutta.

Kapseloinnissa käytetään näkyvyysmääreitä kuten public, private ja protected piilottamaan suurin osa luokan kentistä ja metodeista ja paljastamaan vain ne, joita tarvitaan ulkopuolelta käytettäväksi.

Koska suurin osa tiedoista ei ole suoraan saavutettavissa luokan ulkopuolelta, käytetään gettereitä ja settereitä tietojen hakemiseen tai muokkaamiseen.

Hyvä esimerkki on Customer-luokka, joka määrittelee pankin asiakkaan:

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; } }

Yllä olevassa esimerkissä mikään kenttä ei ole suoraan saavutettavissa tai muokattavissa ulkopuolelta. Sen sijaan arvoa muutetaan tarvittaessa metodien, kuten Deposit ja Withdraw, avulla. Vastaavasti saldon arvoa tarkastellaan käyttämällä getBalance-metodia.

public-avainsanan käyttöä suositellaan yleensä välttämään, ellei se ole välttämätöntä.

Note
Huomio

Muistutuksena, jos haluamme pitää kentän saavuttamattomana luokan ulkopuolelta mutta saavutettavana perityissä luokissa, voimme käyttää protected-näkyvyysmuuttujaa.

1. Mikä rooli näkyvyysmuuttujilla on kapseloinnissa C#:ssa?

2. Mitä seuraavista näkyvyysmääreistä tulisi käyttää vähiten kapseloinnin säilyttämiseksi?

question mark

Mikä rooli näkyvyysmuuttujilla on kapseloinnissa C#:ssa?

Select the correct answer

question mark

Mitä seuraavista näkyvyysmääreistä tulisi käyttää vähiten kapseloinnin säilyttämiseksi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 2.04

bookKapselointi

Pyyhkäise näyttääksesi valikon

Kapselointi on pohjimmiltaan tapa järjestää tietoa. Siinä tiedot ja metodit järjestetään luokkien muotoon, jolloin koko ohjelma perustuu luokkiin ja tiedot sekä metodit ovat kapseloituina näihin luokkiin. Tämä kapselointi mahdollistaa tavan hallita olion sisäisen tilan saatavuutta, edistäen ohjelmiston modulaarisuutta, ylläpidettävyyttä ja turvallisuutta.

Kapseloinnissa käytetään näkyvyysmääreitä kuten public, private ja protected piilottamaan suurin osa luokan kentistä ja metodeista ja paljastamaan vain ne, joita tarvitaan ulkopuolelta käytettäväksi.

Koska suurin osa tiedoista ei ole suoraan saavutettavissa luokan ulkopuolelta, käytetään gettereitä ja settereitä tietojen hakemiseen tai muokkaamiseen.

Hyvä esimerkki on Customer-luokka, joka määrittelee pankin asiakkaan:

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; } }

Yllä olevassa esimerkissä mikään kenttä ei ole suoraan saavutettavissa tai muokattavissa ulkopuolelta. Sen sijaan arvoa muutetaan tarvittaessa metodien, kuten Deposit ja Withdraw, avulla. Vastaavasti saldon arvoa tarkastellaan käyttämällä getBalance-metodia.

public-avainsanan käyttöä suositellaan yleensä välttämään, ellei se ole välttämätöntä.

Note
Huomio

Muistutuksena, jos haluamme pitää kentän saavuttamattomana luokan ulkopuolelta mutta saavutettavana perityissä luokissa, voimme käyttää protected-näkyvyysmuuttujaa.

1. Mikä rooli näkyvyysmuuttujilla on kapseloinnissa C#:ssa?

2. Mitä seuraavista näkyvyysmääreistä tulisi käyttää vähiten kapseloinnin säilyttämiseksi?

question mark

Mikä rooli näkyvyysmuuttujilla on kapseloinnissa C#:ssa?

Select the correct answer

question mark

Mitä seuraavista näkyvyysmääreistä tulisi käyttää vähiten kapseloinnin säilyttämiseksi?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 6
some-alt