Ključna razlika – konstruktor vs destruktor
Većina programskih jezika podržava objektno orijentirano programiranje (OOP). To je paradigma koja pomaže modeliranju softvera ili programa pomoću objekata. OOP poboljšava produktivnost i mogućnost održavanja. U OOP-u se sve smatra objektom. Objekti se kreiraju ili instanciraju pomoću klasa. Konstruktor i destruktor su uobičajeni termini u objektno orijentiranom programiranju. Ovaj članak govori o razlici između konstruktora i destruktora. Konstruktor i destruktor su posebne funkcije člana u klasi. Konstruktor i destruktor imaju isto ime kao i klasa, ali destruktor ima znak tilde (~). 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.
Šta je konstruktor?
Konstruktor je posebna funkcija člana u klasi za dodjelu memorije objektu. Može se koristiti za pružanje vrijednosti za članove podataka. Konstruktor se poziva kada se objekat kreira. Ima isto ime kao i ime klase. Konstruktor ne vraća nikakvu vrijednost. Stoga, ne sadrži tip povratka. Konstruktor također može prihvatiti parametre. Konstruktor s parametrima poznat je kao parametrizirani konstruktor.
Primjer konstruktora je sljedeći.
pravougaonik javne klase{
int dužina, širina;
javni pravougaonik (int p, int q){
dužina=p;
width=q;
}
public int CalculateArea(){
povratak (dužinaširina);
}
}
Prema gore navedenom dijelu koda, konstruktor ima isto ime kao i ime klase. Konstruktor Rectangle prihvata dva parametra. Oni su p i q. Cjelobrojna vrijednost p je dodijeljena dužini. Cjelobrojna vrijednost q je dodijeljena širini. U calcu alteArea, množenje dužine i širine se izračunava kako bi se pronašla površina pravokutnika. U glavnom programu, programer može kreirati objekat tipa Rectangle i proslijediti argumente. npr. Pravougaonik pravougaonik1=novi pravougaonik(2, 3). Zatim se poziva parametrizovani konstruktor i dodeljuje vrednosti dužini 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 standardni konstruktor. Ako postoji klasa kao Student i kada programer kreira objekat tipa Student, poziva se podrazumevani 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 se može pozvati odgovarajući konstruktor. Stoga, konstruktori mogu biti preopterećeni.
Šta je destruktor?
Destruktor je posebna funkcija člana u klasi. Koristi se za de-alociranje memorije za objekt kreiran od strane konstruktora. Destruktor se poziva kada se objekat uništi. Izvodi skladište za čišćenje koje više nije potrebno. Kao i konstruktor, destruktor ima isto ime kao i klasa. Takođe sadrži simbol tilde (~).
Destruktor ne vraća nikakvu vrijednost. Za razliku od konstruktora, destruktor ne prihvata nikakve parametre. Dakle, destruktor ne podržava preopterećenje. Deklarisanje destruktora se smatra dobrom programskom praksom jer oslobađa memorijski prostor i taj prostor se može koristiti za pohranjivanje nekih drugih objekata. Sintaksa destruktora je slična ~className() { }. npr. ~Pravougaonik() { }; U klasi može postojati samo jedan destruktor.
Koje su sličnosti između konstruktora i destruktora?
- I konstruktor i destruktor su povezani sa objektima.
- I konstruktor i destruktor ne vraćaju nikakvu vrijednost.
- I konstruktor i destruktor se pozivaju automatski.
Koja je razlika između konstruktora i destruktora?
Constructor vs Destructor |
|
Konstruktor je poseban član u klasi koji se koristi za dodeljivanje memorije objektu. | Destruktor je poseban član klase koji se koristi za oslobađanje memorije objekta. |
Metoda pozivanja | |
Konstruktor se poziva kada je objekat kreiran. | Destruktor se poziva kada je objekt uništen ili obrisan. |
Upotreba | |
Konstrukcionik se koristi za dodjelu memorije za objekte. | Destruktor se koristi za oslobađanje memorije za objekte. |
Parametri | |
Konstruktor prihvata parametre. | Destruktor ne prihvata parametre. |
Broj konstruktora i destruktora | |
Može postojati više konstruktora sa različitim brojem parametara i različitim tipovima parametara. | Može postojati jedan destruktor u klasi. |
Brzina izvršenja | |
Konstruktor ima isto ime kao i 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 – Constructor vs Destructor
OOP je uobičajena paradigma u razvoju softvera. Može pojednostaviti složen projekat. 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 dodeljivanje 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 je za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje: Razlika između konstruktora i destruktora