Mitä eroa on luokan ja objektin välillä
Pääasiallinen ero luokan ja objektin välillä on se, että luokka on malli, jonka avulla luodaan objekteja, kun taas objekti on luokan instanssi.
Ohjelmointiparadigma tarkoittaa tyyliä, jolla tietokoneohjelman rakenne ja elementit järjestetään. Yksi tärkeimmistä paradigmoista on olio-ohjelmointi (Object Oriented Programming, OOP). Sen avulla kehittäjät voivat mallintaa reaalimaailman skenaarioita helposti. Lisäksi tämä paradigma mahdollistaa ohjelmistojen luomisen objektien avulla. Luokka ja objekti ovat kaksi OOP:hen liittyvää käsitettä.
Keskeiset aihealueet
1. Mikä on luokka
– Määritelmä, toiminnallisuus
2. Mikä on objekti
– Määritelmä, toiminnallisuus
3. Luokan ja objektin ero
– Keskeisten erojen vertailu
Keskeiset termit
Attribuutti, luokka, konstruktori, objekti, metodi, OOP
Mikä on luokka
Luokka on suunnitelma, jonka avulla luodaan objekti. Se on looginen kokonaisuus, joka tarjoaa rakenteen objektien luomiseen. Toisin sanoen ohjelmoija voi luoda useita objekteja käyttämällä yhtä luokkaa. Luokka koostuu attribuuteista ja metodeista. Attribuutit ovat kenttiä tai metodeja. Metodit kuvaavat käyttäytymistä. Lisäksi luokka voi sisältää myös konstruktorin. Se on erityinen metodi, jota käytetään objektin alustamiseen.
Näitä luokan attribuutteja ja metodeja kutsutaan luokan jäseniksi. Näillä jäsenillä voi olla julkinen, yksityinen tai suojattu näkyvyys. Julkisiin jäseniin pääsee luokan ulkopuolelle, kun taas yksityisiin jäseniin pääsee vain luokan sisällä. Lisäksi suojatut jäsenet ovat näkyvissä luokan ja alaluokkien sisällä. Ohjelmoija voi suojata luokan attribuutteja julistamalla ne yksityisiksi ja sallimalla niiden käytön julkisilla metodeilla.
Mikä on objekti
Objekti on luokan instanssi. Toisin sanoen objektit luodaan luokan avulla. Objekti on olio, jolla on tila ja käyttäytymistä. Luokan attribuutit kuvaavat objektin tilaa. Vastaavasti luokan metodit kuvaavat objektin käyttäytymistä.
Oletetaan esimerkiksi lääkehallintajärjestelmä. Sillä on tiloja, kuten terveyskeskuksen nimi, sijainti, lääkäreiden ja potilaiden määrä jne. Sillä on myös käyttäytymismalleja tai toimintoja, kuten potilaiden vastaanottaminen, lääketieteellisten raporttien antaminen, lääkärin tietojen syöttäminen jne. Lisäksi pankkijärjestelmässä on tiloja, kuten pankin nimi, sijainti, maa jne. ja käyttäytymismalleja tai toiminnallisuuksia, kuten tallettaminen, nostaminen, rahansiirto.
Tällaisen luokka-objekti-skenaarion avulla voidaan helposti mallintaa mitä tahansa reaalimaailman tilannetta.
Kuvio 1: Java-ohjelma, jossa on luokkia ja objekteja
Ylläolevassa ohjelmassa on luokka nimeltä Student. Sillä on yksityisiä ominaisuuksia nimeltä id, name ja gpa. Student-konstruktorin avulla näille ominaisuuksille annetaan alkuarvot. Ominaisuuksien näyttämiseen on metodi nimeltä displayDetails. Pääohjelmassa luodaan Student-oliot (s1, s2). Avainsana new auttaa varaamaan muistia objekteille suoritusaikana. Sitten kutsutaan dispalyDetails-metodia käyttäen näitä objekteja. Siksi opiskelijan tiedot näkyvät konsolissa.
Luokan ja objektin ero
Määritelmä
Luokka on malli, jolla luodaan tai instansoidaan objekteja ohjelmassa, kun taas objekti on luokan instanssi. Tämä on siis tärkein ero luokan ja objektin välillä.
Tyyppi
Tärkeä ero luokan ja objektin välillä on myös se, että luokka on looginen kokonaisuus, kun taas objekti on fyysinen kokonaisuus.
Luonti
Lisäksi Luokka ilmoitetaan avainsanalla ”class”, kun taas objekti luodaan avainsanalla ”new”.
Muistin varaaminen
Luokka ei saa muistia luotaessa, kun taas objektit saavat muistia luotaessa. Tämä on siis toinen ero luokan ja objektin välillä.
Määrä
Lisäksi luokka julistetaan kerran, kun taas luokan avulla luodaan useita objekteja.
Johtopäätös
Yleinen OOP perustuu luokan ja objektin käsitteeseen. Tärkein ero luokan ja objektin välillä on se, että luokka on suunnitelma tai malli objektien luomiseksi, kun taas objekti on luokan instanssi. Lyhyesti sanottuna objektien luomiseksi pitäisi olla luokka.