Erinevus konstruktori ja hävitaja vahel

Sisukord:

Erinevus konstruktori ja hävitaja vahel
Erinevus konstruktori ja hävitaja vahel

Video: Erinevus konstruktori ja hävitaja vahel

Video: Erinevus konstruktori ja hävitaja vahel
Video: Разобрали, отпилили, приварили, поменяли и покрасили. Привели в порядок ржавый кузов. 2024, November
Anonim

Peamine erinevus – konstruktor vs hävitaja

Enamik programmeerimiskeeli toetab objektorienteeritud programmeerimist (OOP). See on paradigma, mis aitab objektide abil tarkvara või programmi modelleerida. OOP parandab tootlikkust ja hooldatavust. OOP-is käsitletakse kõike objektina. Objektid luuakse või instantseeritakse klasside abil. Konstruktor ja hävitaja on objektorienteeritud programmeerimises levinud terminid. Selles artiklis käsitletakse konstruktori ja hävitaja erinevust. Konstruktor ja destruktor on klassis erilised liikmefunktsioonid. Konstruktoril ja hävitajal on klassiga sama nimi, kuid hävitajal on tilde (~) märk. Peamine erinevus konstruktori ja hävitaja vahel on see, et konstruktorit kasutatakse objektile mälu eraldamiseks, samas kui destruktorit kasutatakse objekti mälu eraldamiseks.

Mis on konstruktor?

Konstruktor on klassi spetsiaalne liigefunktsioon objektile mälu eraldamiseks. Seda saab kasutada andmeliikmete väärtuste pakkumiseks. Konstruktor kutsutakse välja objekti loomisel. Sellel on sama nimi kui klassi nimel. Konstruktor ei tagasta mingit väärtust. Seetõttu ei sisalda see tagastustüüpi. Konstruktor võib aktsepteerida ka parameetreid. Parameetritega konstruktorit nimetatakse parameetritega konstruktoriks.

Konstruktori näide on järgmine.

avaliku klassi ristkülik{

int pikkus, laius;

avalik ristkülik(int p, int q){

pikkus=p;

laius=q;

}

public int arvuta pindala(){

tagasi (pikkuslaius);

}

}

Vastav alt ül altoodud koodilõigule on konstruktoril klassi nimega sama nimi. Konstruktor Rectangle aktsepteerib kahte parameetrit. Need on p ja q. Pikkusele omistatakse täisarv p. Laiusele omistatakse täisarv q. Väljas calcu alteArea arvutatakse ristküliku pindala leidmiseks pikkuse ja laiuse korrutis. Põhiprogrammis saab programmeerija luua ristküliku tüüpi objekti ja edastada argumendid. nt. Ristkülik rist1=new Ristkülik(2, 3). Seejärel kutsutakse välja parameetritega konstruktor ja see määrab väärtused pikkusele ja laiusele.

Erinevus konstruktori ja hävitaja vahel
Erinevus konstruktori ja hävitaja vahel

Joonis 01: Konstruktor ja hävitaja

Kui on olemas konstruktor ilma parameetriteta, nimetatakse seda vaikekonstruktoriks. Kui programmeerija konstruktorit ei määratle, kutsutakse välja vaikekonstruktor. Kui klass on Student ja kui programmeerija loob objekti tüüpi Student, kutsutakse välja vaikekonstruktor. nt. Õpilane s1=new Student(); Klassis võib olla mitu erinevate parameetrite ja erineva andmetüübiga konstruktorit. Vastav alt sellele saab kutsuda sobiva konstruktori. Seetõttu võivad konstruktorid olla ülekoormatud.

Mis on hävitaja?

Destruktor on klassis spetsiaalne liikmefunktsioon. Seda kasutatakse konstruktori loodud objekti mälu eraldamiseks. Objekti hävitamisel kutsutakse välja hävitaja. See puhastab salvestusruumi, mida enam ei vajata. Nagu konstruktoril, on ka hävitajal klassiga sama nimi. See sisaldab ka tilde (~) sümbolit.

Destruktor ei tagasta väärtust. Erinev alt konstruktorist ei aktsepteeri destruktor ühtegi parameetrit. Niisiis, destructor ei toeta ülekoormust. Destruktori deklareerimist peetakse heaks programmeerimistavaks, kuna see vabastab mäluruumi ja seda ruumi saab kasutada mõne muu objekti salvestamiseks. Destrutori süntaks on sarnane funktsiooniga ~className() { }. nt. ~Ristkülik() { }; Klassis saab olla ainult üks hävitaja.

Millised on konstruktori ja hävitaja sarnasused?

  • Nii konstruktor kui ka hävitaja on seotud objektidega.
  • Nii konstruktor kui ka hävitaja ei tagasta väärtust.
  • Nii konstruktorit kui ka hävitajat kutsutakse automaatselt.

Mis vahe on konstruktoril ja hävitajal?

konstruktor vs hävitaja

Konstruktor on klassi eriliige, mida kasutatakse objektile mälu eraldamiseks. Destruktor on klassi eriliige, mida kasutatakse objekti mälu eraldamiseks.
Väljakutsumise meetod
Objekti loomisel kutsutakse välja konstruktor. Destruktor kutsutakse välja, kui objekt hävitatakse või kustutatakse.
Kasutus
Objektidele mälu eraldamiseks kasutatakse konstruktorit. Objektide mälu eraldamiseks kasutatakse hävitajat.
Parameetrid
Konstruktor aktsepteerib parameetreid. Destruktor ei aktsepteeri parameetreid.
Ehitajate ja hävitajate arv
Seal võib olla mitu konstruktorit erineva arvu parameetrite ja erinevat tüüpi parameetritega. Klassis võib olla üks hävitaja.
Täitmise kiirus
Konstruktoril on klassi nimega sama nimi. Destruktoril on sama nimi, mis klassi nimel tilde (~) sümboliga.
Ülekoormus
Konstruktor võib olla ülekoormatud. Destruktorit ei saa üle koormata.

Kokkuvõte – konstruktor vs hävitaja

OOP on tarkvaraarenduse tavaline paradigma. See võib keerukat projekti lihtsustada. OOP-is kasutatakse konstruktorit ja destruktorit. Konstruktoril ja hävitajal on klassiga sama nimi, kuid hävitajal on ~ märk. Konstruktori ja destruktori erinevus seisneb selles, et konstruktorit kasutatakse objektile mälu eraldamiseks, samas kui destruktorit kasutatakse objekti mälu eraldamiseks.

Laadige alla Constructor vs Destructor PDF-fail

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit: Constructori ja Destructori erinevus

Soovitan: