Luokat vs. rakenteet
Jotkut olioihin (OO) ohjelmointikielten pääkäsitteistä ovat kapselointi, perintö ja polymorfismi. Luokka ja rakenne ovat kaksi OO-rakenteista / -työkalua, jotka auttavat ohjelmoijia saavuttamaan nämä käsitteet useimmissa poistuvissa OO-ohjelmointikielissä (Java ei tarjoa rakenteita). Luokat ovat abstrakti kuvaus todellisen maailman esineistä. Rakenteet ovat hyvin samankaltaisia luokkien kanssa, joilla on samanlainen käyttö, mutta niillä on vain vähän rajoituksia luokkiin verrattuna. Sekä luokkia että rakennetta käytetään saman tyyppisten tietojen ryhmittelemiseen yhdessä.
Mitä luokat ovat?
Luokat kuvaavat todellisen maailman esineiden abstraktia esitystä, kun taas suhteet kuvaavat kuinka kukin luokka on yhteydessä muihin. Sekä luokilla että suhteilla on ominaisuuksia, joita kutsutaan määritteiksi. Luokkien menetelmät edustavat tai määrittelevät näiden luokkien käyttäytymistä. Luokkien menetelmiä ja määritteitä kutsutaan luokan jäseniksi. Tyypillisesti kapselointi saavutetaan tekemällä attribuutit yksityisiksi, samalla kun luodaan julkisia menetelmiä, joita voidaan käyttää kyseisten attribuuttien käyttämiseen. Objekti on luokan esiintymä. Perimisen avulla käyttäjä voi laajentaa luokkia (kutsutaan alaluokiksi) muista luokista (kutsutaan superluokiksi). Polymorfismi sallii ohjelmoijan korvata luokan objektin sen superluokan objektin sijaan. Tyypillisesti ongelman määrittelyssä löydetyistä substantiiveista tulee suoraan luokan luokkia. Ja samoin,verbeistä tulee menetelmiä. Julkinen, yksityinen ja suojattu ovat tyypillisiä luokkien pääsymuuttujia. Luokkakaavio näyttää järjestelmien luokat, luokkien väliset suhteet ja niiden määritteet.
Mitä rakenteet ovat?
Kuten edellä mainittiin, rakenteet ovat hyvin samankaltaisia luokkien kanssa, joilla on samanlainen käyttö, mutta niiden ominaisuudet ovat hieman rajalliset kuin luokissa. Itse asiassa luokkia voidaan pitää rakenteiden laajennuksena. Esimerkiksi rakenteet ovat samat kuin luokissa C ++, mutta niillä on oletusarvoisesti julkisia jäseniä. Käyttäjä voi määrittää rakenteen, joka edustaa yhdistettyä tyyppiä. Samoin kuin luokissa, rakenteissa on jäseniä, jotka voivat kuulua moneen tyyppiin. Hakusanalla struct käytetään määrittelemään rakenne C- ja C ++ -tekstissä, kun taas avainsanalla Structure käytetään samaa. NET-ohjelmointikielissä.
Mitä eroa on luokilla ja rakenteilla?
Vaikka sekä luokat että rakenteet ovat samanlaisia rakenteita, joita löytyy ohjelmointikielistä, niillä on hienovaraisia eroja. Tyypillisesti luokka on rakenteen jatke, ja siksi rakenteilla on joitain suhteellisia rajoituksia. Esimerkiksi rakenteita voidaan pitää samoina kuin luokissa C ++, mutta jäsenet eivät ole oletusarvoisesti luokissa (toisin kuin rakenteissa). Tämä tarkoittaa itse asiassa sitä, että voit määrittää luokan ja rakenteen, jolla on täsmälleen samat ominaisuudet, käyttämällä asianmukaisia pääsymuuttujia C ++: ssa. C: ssä rakenteet eivät kuitenkaan voi sisältää toimintoja tai ylikuormitettuja operaatioita. Avainsanoja class ja struct käytetään määrittelemään luokka ja rakenne C ++: ssa. Kun kyseessä on. NET-kielet (C #, VB. NET jne.), Luokka on viitetyyppi, kun taas rakenne on arvotyyppi. Ja yleensä,rakenteita käytetään pienempiin kohteisiin, mutta luokkia käytetään suurempiin kohteisiin, jotka säilyvät muistissa pidempään.