Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele OOP-Periaatteet: Kapselointi | OOP
Java OOP
course content

Kurssisisältö

Java OOP

Java OOP

1. Kuinka Työskennellä IDE:n Kanssa?
2. OOP
3. Rajapinta

book
OOP-Periaatteet: Kapselointi

Kapselointi

Toinen olio-ohjelmoinnin (Object-Oriented Programming, OOP) perusperiaate. Todennäköisesti tärkein periaate, sillä koko OOP-paradigma perustuu siihen. Olet jo kohdannut tämän periaatteen tässä luvussa määritellessäsi kenttiä ja metodeja private- tai public-määreillä. Nyt käsittelemme tätä periaatetta tarkemmin.

Huomio

Älä sekoita sanaa 'rajapinta' (mallipohja, kaava) siihen Interfaceen, jota käsittelemme seuraavassa osiossa!

Näkyvyysmääreet

Näkyvyysmääreet ovat olennainen osa kapselointia, joten vaikka olemme käsitelleet niitä aiemmin, meidän on syytä kerrata tämä aihe. Alla on näkyvyysmääreiden määritelmä sekä taulukko ja lyhyt kuvaus:

  1. public: Jäsenet, joilla on public-näkyvyysmuuttuja, ovat käytettävissä mistä tahansa koodissa. Niillä on laajin näkyvyysalue. Esimerkiksi public-metodia voidaan kutsua mistä tahansa luokasta;

  2. private: Jäsenet, joilla on private-näkyvyysmuuttuja, ovat käytettävissä vain siinä luokassa, jossa ne on määritelty. Ne eivät ole näkyvissä ulkoisille luokille. Tämä tarjoaa vahvan kapseloinnin;

  3. protected: Jäsenet, joilla on protected-näkyvyysmuuttuja, ovat käytettävissä samassa paketissa ja aliluokissa, vaikka ne olisivat eri paketeissa. Tämä mahdollistaa tiedon hallitun jakamisen;

  4. oletus (package-private): Jos näkyvyysmuuttujaa ei ole määritelty, jäsen on käytettävissä vain samassa paketissa. Tämä on oletustason näkyvyys.

Katsotaanpa, miten näkyvyysmuuttujat toimivat käytännössä. On kaksi luokkaa: toinen on luotu samaan pakettiin kuin main-luokka, ja toinen on luotu eri pakettiin. Katsotaan, miten näkyvyysmuuttujat vaikuttavat tähän:

Kuvakaappauksissa näet, mistä muuttujat vastaavilla nimillä ovat käytettävissä.

Muistutan myös, että jos haluat ohittaa näkyvyysmuuttujat, voit lukea siitä täältä: linkki.

Huomio

On myös syytä mainita, että metodeilla voi olla näkyvyysmuuttujia. Ne toimivat samalla tavalla kuin kentillä. Esimerkiksi metodi, jolla on private-näkyvyysmuuttuja, on käytettävissä vain siinä luokassa, jossa se on luotu.

Yhteenveto

Kapselointi on erittäin hyödyllistä, kun tietoa täytyy järjestää osiin, mikä tekee koodista hyvin jäsenneltyä. Lisäksi kapseloinnin ansiosta voit määrittää, missä ja miten kenttiisi ja metodeihisi pääsee käsiksi.

1. Mitä kapselointi tarkoittaa Javassa?

2. Mikä pääsynrajoitin on tiukin?

3. Mitkä ovat kapseloinnin hyödyt?

4. Mitkä seuraavista väittämistä kapseloinnista pitävät paikkansa?

question mark

Mitä kapselointi tarkoittaa Javassa?

Select the correct answer

question mark

Mikä pääsynrajoitin on tiukin?

Select the correct answer

question mark

Mitkä ovat kapseloinnin hyödyt?

Select the correct answer

question mark

Mitkä seuraavista väittämistä kapseloinnista pitävät paikkansa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 6

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

course content

Kurssisisältö

Java OOP

Java OOP

1. Kuinka Työskennellä IDE:n Kanssa?
2. OOP
3. Rajapinta

book
OOP-Periaatteet: Kapselointi

Kapselointi

Toinen olio-ohjelmoinnin (Object-Oriented Programming, OOP) perusperiaate. Todennäköisesti tärkein periaate, sillä koko OOP-paradigma perustuu siihen. Olet jo kohdannut tämän periaatteen tässä luvussa määritellessäsi kenttiä ja metodeja private- tai public-määreillä. Nyt käsittelemme tätä periaatetta tarkemmin.

Huomio

Älä sekoita sanaa 'rajapinta' (mallipohja, kaava) siihen Interfaceen, jota käsittelemme seuraavassa osiossa!

Näkyvyysmääreet

Näkyvyysmääreet ovat olennainen osa kapselointia, joten vaikka olemme käsitelleet niitä aiemmin, meidän on syytä kerrata tämä aihe. Alla on näkyvyysmääreiden määritelmä sekä taulukko ja lyhyt kuvaus:

  1. public: Jäsenet, joilla on public-näkyvyysmuuttuja, ovat käytettävissä mistä tahansa koodissa. Niillä on laajin näkyvyysalue. Esimerkiksi public-metodia voidaan kutsua mistä tahansa luokasta;

  2. private: Jäsenet, joilla on private-näkyvyysmuuttuja, ovat käytettävissä vain siinä luokassa, jossa ne on määritelty. Ne eivät ole näkyvissä ulkoisille luokille. Tämä tarjoaa vahvan kapseloinnin;

  3. protected: Jäsenet, joilla on protected-näkyvyysmuuttuja, ovat käytettävissä samassa paketissa ja aliluokissa, vaikka ne olisivat eri paketeissa. Tämä mahdollistaa tiedon hallitun jakamisen;

  4. oletus (package-private): Jos näkyvyysmuuttujaa ei ole määritelty, jäsen on käytettävissä vain samassa paketissa. Tämä on oletustason näkyvyys.

Katsotaanpa, miten näkyvyysmuuttujat toimivat käytännössä. On kaksi luokkaa: toinen on luotu samaan pakettiin kuin main-luokka, ja toinen on luotu eri pakettiin. Katsotaan, miten näkyvyysmuuttujat vaikuttavat tähän:

Kuvakaappauksissa näet, mistä muuttujat vastaavilla nimillä ovat käytettävissä.

Muistutan myös, että jos haluat ohittaa näkyvyysmuuttujat, voit lukea siitä täältä: linkki.

Huomio

On myös syytä mainita, että metodeilla voi olla näkyvyysmuuttujia. Ne toimivat samalla tavalla kuin kentillä. Esimerkiksi metodi, jolla on private-näkyvyysmuuttuja, on käytettävissä vain siinä luokassa, jossa se on luotu.

Yhteenveto

Kapselointi on erittäin hyödyllistä, kun tietoa täytyy järjestää osiin, mikä tekee koodista hyvin jäsenneltyä. Lisäksi kapseloinnin ansiosta voit määrittää, missä ja miten kenttiisi ja metodeihisi pääsee käsiksi.

1. Mitä kapselointi tarkoittaa Javassa?

2. Mikä pääsynrajoitin on tiukin?

3. Mitkä ovat kapseloinnin hyödyt?

4. Mitkä seuraavista väittämistä kapseloinnista pitävät paikkansa?

question mark

Mitä kapselointi tarkoittaa Javassa?

Select the correct answer

question mark

Mikä pääsynrajoitin on tiukin?

Select the correct answer

question mark

Mitkä ovat kapseloinnin hyödyt?

Select the correct answer

question mark

Mitkä seuraavista väittämistä kapseloinnista pitävät paikkansa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 6
some-alt