Ključna razlika – konstruktor nasuprot destruktoru
Većina programskih jezika podržava objektno orijentirano programiranje (OOP). Paradigma je ta koja pomaže modelirati softver ili program pomoću objekata. OOP poboljšava produktivnost i lakoću održavanja. U OOP-u se sve smatra objektom. Objekti se stvaraju ili instanciraju pomoću klasa. Konstruktor i destruktor uobičajeni su pojmovi u objektno orijentiranom programiranju. Ovaj članak govori o razlici između konstruktora i destruktora. Konstruktor i destruktor su posebne funkcije članice u klasi. Konstruktor i destruktor imaju isto ime kao klasa, ali destruktor ima znak tilda (~). Ključna razlika između konstruktora i destruktora je u tome što se konstruktor koristi za dodjelu memorije objektu, dok se destruktor koristi za oslobađanje memorije objekta.
Što je konstruktor?
Konstruktor je posebna funkcija članica u klasi za dodjelu memorije objektu. Može se koristiti za pružanje vrijednosti za članove podataka. Konstruktor se poziva kada se objekt kreira. Ima isto ime kao ime klase. Konstruktor ne vraća nikakvu vrijednost. Stoga ne sadrži tip povrata. Konstruktor također može prihvatiti parametre. Konstruktor s parametrima poznat je kao parametrizirani konstruktor.
Primjer konstruktora je sljedeći.
javna klasa Pravokutnik{
int duljina, širina;
javni pravokutnik(int p, int q){
duljina=p;
width=q;
}
public int izračunPovršine(){
povratak (dužinaširina);
}
}
Prema gornjem dijelu koda, konstruktor ima isto ime kao i ime klase. Konstruktor Rectangle prihvaća dva parametra. To su p i q. Duljini je pridružena cjelobrojna vrijednost p. Cjelobrojna vrijednost q dodijeljena je širini. U calcu alteArea, množenje duljine i širine izračunava se kako bi se dobila površina pravokutnika. U glavnom programu, programer može kreirati objekt tipa Rectangle i proslijediti argumente. npr. Pravokutnik rect1=novi pravokutnik(2, 3). Zatim se poziva parametrizirani konstruktor i dodjeljuje vrijednosti duljini i širini.
Slika 01: Konstruktor i destruktor
Kada postoji konstruktor bez ikakvih parametara, naziva se zadani konstruktor. Ako programer ne definira konstruktor, bit će pozvan zadani konstruktor. Ako postoji klasa kao Student i kada programer kreira objekt tipa Student, poziva se zadani konstruktor. npr. Student s1=novi Student(); U klasi može postojati više konstruktora s različitim parametrima i različitim tipovima podataka. U skladu s tim može se pozvati odgovarajući konstruktor. Stoga konstruktori mogu biti preopterećeni.
Što je Destructor?
Destruktor je posebna funkcija član u klasi. Koristi se za oslobađanje memorije za objekt koji je stvorio konstruktor. Destruktor se poziva kada je objekt uništen. Obavlja skladištenje čišćenja koje više nije potrebno. Kao i konstruktor, destruktor ima isto ime kao klasa. Također sadrži simbol tilde (~).
Destruktor ne vraća nikakvu vrijednost. Za razliku od konstruktora, destruktor ne prihvaća nikakve parametre. Dakle, destruktor ne podržava preopterećenje. Deklariranje destruktora smatra se dobrom programskom praksom jer oslobađa memorijski prostor i taj se prostor može koristiti za pohranu nekih drugih objekata. Sintaksa destruktora slična je ~className() { }. npr. ~Pravokutnik() { }; U klasi može postojati samo jedan destruktor.
Koje su sličnosti između konstruktora i destruktora?
- I konstruktor i destruktor povezani su s objektima.
- I konstruktor i destruktor ne vraćaju nikakvu vrijednost.
- I konstruktor i destruktor pozivaju se automatski.
Koja je razlika između konstruktora i destruktora?
Konstruktor vs Destruktor |
|
Konstruktor je poseban član u klasi koji se koristi za dodjelu memorije objektu. | Destruktor je poseban član klase koji se koristi za oslobađanje memorije objekta. |
Metoda pozivanja | |
Konstruktor se poziva kada se objekt kreira. | Destruktor se poziva kada se objekt uništi ili izbriše. |
Upotreba | |
Konstruktor se koristi za dodjelu memorije za objekte. | Destruktor se koristi za oslobađanje memorije za objekte. |
Parametri | |
Konstruktor prihvaća parametre. | Destruktor ne prihvaća parametre. |
Broj konstruktora i destruktora | |
Može postojati više konstruktora s različitim brojem parametara i različitim vrstama parametara. | Može postojati jedan destruktor u klasi. |
Brzina izvršenja | |
Konstruktor ima isto ime kao ime klase. | Destruktor ima isto ime kao ime klase sa simbolom tilde (~). |
Preopterećenje | |
Konstruktor može biti preopterećen. | Destruktor se ne može preopteretiti. |
Sažetak – Konstruktor protiv Destruktora
OOP je uobičajena paradigma u razvoju softvera. Može pojednostaviti složen projekt. U OOP-u se koriste konstruktor i destruktor. Konstruktor i destruktor imaju isto ime kao i klasa, ali destruktor ima znak ~. Razlika između konstruktora i destruktora je u tome što se konstruktor koristi za dodjelu memorije objektu, dok se destruktor koristi za oslobađanje memorije objekta.
Preuzmite PDF Constructor vs Destructor
Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju: Razlika između konstruktora i destruktora