Rakentaja ja tuhoaja

Anonim

Luokka on olio-ohjelmoinnin (OOP) ytimessä. Se on kuin suunnitelma luomaan esineitä, jotka tarjoavat alkuarvoja jäsenten muuttujille ja jäsentoiminnoille. Se on OOP: n perusrakenne, joka määrittelee tulevaisuuden kohteen luonteen. Tärkein asia luokassa on se, että se määrittelee uuden tietotyypin ja kun se on määritetty, sitä voidaan käyttää luomaan tämäntyyppisiä esineitä. Joten olisi riittävää sanoa, että luokka on objektin malli ja kohde on itse asiassa luokan esitys. Sitä käytetään luomaan ja hallitsemaan uusia esineitä ja tukemaan perintöä, joka on yksi objektipohjaisten ohjelmointikielten, kuten Java, ydinkäsitteistä. Lyhyesti sanottuna luokka järjestää tietoja tietotyypistä, jotta elementtejä voidaan käyttää uudelleen, kun kyseisiä tietotyyppejä on useita. Luokassa määritettyjä tietoja tai muuttujia kutsutaan instanssien muuttujiksi.

Mikä on rakentaja?

Rakentaja on luokan erityinen jäsentoiminto, jota kutsutaan, kun objektin esitys luodaan. Ajoittain voi olla vaikea alustaa kaikki luokan muuttujat joka kerta, kun esiintymää luodaan. Koska alustusvaatimus on yleinen esiohjelmoidussa ohjelmoinnissa, sen avulla objektit voidaan alustaa automaattisesti, kun ne luodaan. Tämä automaattisen alustuksen prosessi tehdään konstruktorin avulla. Syy, miksi sitä kutsutaan erikoiseksi, on se, että esiintymismenetelmällä on tavallisesti sama nimi kuin luokassa. Se alustaa objekti välittömästi luomisen jälkeen ja sitä voidaan käyttää määrittämään objektin jäsenten arvot. Konstruktori on syntaktisesti samanlainen kuin objektipohjaisen ohjelmoinnin menetelmä ja menetelmä on menettely, joka liittyy luokkaan ja sisältyy mihin tahansa kyseisen luokan kohteeseen. Lyhyesti sanottuna konstruktoria kutsutaan joka kerta, kun luokan kohde luodaan. Rakentajille tärkeintä on, että heillä ei ole paluuta, ei edes mitätön.

Mikä on tuhoaja?

Tuhoaja on täysin toinen käsite; se on erityinen menetelmä, jota kutsutaan, kun luokan ilmentymä poistetaan muistista. Tuhoaja kutsutaan automaattisesti, kun kohdetta ei enää tarvita tai katoaa tai vapautetaan nimenomaisesti. Destruktorin päätavoite on päästä eroon resursseista, joita kohde käytti elinkaaren aikana. Se antaa esineelle viimeisen mahdollisuuden vapauttaa sille varatut muistit niin, että on tarpeeksi tilaa keräämään uusia esineitä, jotta ohjelmat toimisivat tehokkaasti. Destruktoreita käytetään usein rakentajien kanssa, paitsi että niitä käytetään tuhoamaan rakennuksia käyttäen luotuja esineitä. Ajatuksena on poistaa alus objektista, kun ne poistetaan, jotta vapautuu muistia uusille kohteille. Kuten konstruktorit, destruktorit määritellään luokkien määritelmän alirutiineiksi, ja niillä on sama nimi kuin luokan nimi, paitsi että tuhoojalla on etuliite ~ (tilde) operaattori. Destruktoreita kutsutaan nimenomaisesti C ++: lla, mutta Java ei ole tuhoajia.

Ero rakentajien ja hävittäjän välillä

Rakentajien ja tuhoojien tarkoitus

Sekä rakentajat että destruktorit ovat jokaisen luokan erityisiä jäsentoimintoja, mutta erilaisilla käsitteillä. Rakennetta käytetään luokan alustuksen alustukseen, eli sitä kutsutaan joka kerta, kun luokka on instantioitu, kun taas tuhoaja on rakentajan vastakohta, jota kutsutaan konstruktorien käänteisessä järjestyksessä.

Muistin jakaminen

Konstruktoria kutsutaan joka kerta, kun luodaan uusi luokan ilmentymä. Se on pohjimmiltaan luokan jäsentoiminto, joka alustaa objektin välittömästi luomisen jälkeen ja jakaa muistiin sen. Destruktoria kutsutaan toisaalta, kun luokan ilmentymä poistetaan muistista, joka vuorostaan ​​alustaa objektien, jotka luotiin rakentajien avulla, vapauttaa muistia uusille kohteille.

Nimi

Molemmat konstruktorit ja destruktorit ovat luokan erityisiä jäsentoimintoja, joilla on sama nimi kuin luokan nimi, paitsi että tuhoaja on etuliite ~ (tilde) -operaattorilla. Rakentaja ei ole muuta kuin menetelmä, jolla ei ole paluuta, ei edes tyhjiä, kun taas destruktorit ovat juuri rakentajien vastakohta.

Ylikuormitus

Molemmat konstruktorit ja destruktorit kutsutaan automaattisesti luomisen ja poiston jälkeen. Kuitenkin, toisin kuin konstruktorit, destruktoreita ei voida ylikuormittaa. Ylikuormitus on objektipohjainen ohjelmointikäsite, jonka avulla voit määrittää kaksi tai useampia samannimisiä toimintoja, jotta voit soittaa heille eri argumenttiluetteloilla.

argumentit

Objektiivisessa ohjelmoinnissa konstruktorit usein hyväksyvät argumentteja, joita he käyttävät asettamaan vaadittavat jäsenmuuttujat, kun taas hävittäjät eivät hyväksy mitään argumentteja.

Konstruktorin ja Destructorin työskentely

Rakentajat sallivat objektin alustaa jonkin arvonsa ennen sen käyttämistä, kun taas destruktorit sallivat objektin suorittavan jonkin osan koodista tuhoutumishetkellä.

Constructor Verses Destructor: vertailukaavio

Yhteenveto Constructor Vs. destructor

Molemmat konstruktorit ja destruktorit ovat luokan erityisiä jäsentoimintoja, joilla on sama nimi kuin luokan nimi, paitsi että destruktoreita edeltää ~ tilde-operaattori. Rakentaja ei ole mikään muu kuin menetelmä, jollei sitä kutsuta, kun objektin esitys luodaan, kun taas tuhoaja on juuri päinvastoin konstruktoreista, joita kutsutaan, kun kohteen ilmentymä poistetaan muistista. Destruutorien tarkoituksena on poistaa alustukset esineistä, jotka luotiin rakentajien avulla, jotta vapautuisi muistitilaa uusien kohteiden sijoittamiseksi.