Razlika između konstruktora i destruktora

Klasa je u samoj srži objektno orijentiranog programiranja (OOP). To je poput nacrta za stvaranje objekata koji pruža početne vrijednosti za članske varijable i funkcije članova. To je osnovni građevni blok OOP-a koji definira prirodu budućeg objekta. Najvažnija stvar u klasi je da definira novu vrstu podataka i kada je jednom definirana, ona se može koristiti za izradu objekata te vrste. Prema tome, bilo bi dovoljno reći da je klasa predložak objekta, a objekt u stvari instanca klase. Koristi se za stvaranje i upravljanje novim objektima i za podršku nasljeđivanju, što je jedan od osnovnih koncepata objektno orijentiranih programskih jezika kao što je Java. Ukratko, klasa organizira informacije o vrsti podataka kako bi ponovno koristili elemente pri izradi više instanci te vrste podataka. Podaci ili varijable definirane u klasi se nazivaju instancama varijable.

Što je Konstruktor?

Konstruktor je funkcija posebnih članova klase koja se poziva kada se stvori instanca objekta. Ponekad može biti teško inicijalizirati sve varijable u klasi svaki put kada se stvori instanca. Kako je zahtjev za inicijalizacijom uobičajen u objektno orijentiranom programiranju, on omogućuje objektima da se automatski inicijaliziraju kada se stvore. Ovaj se postupak automatske inicijalizacije provodi pomoću konstruktora. Razlog zašto se zove posebnim jest taj što metoda instance obično ima isti naziv kao i klasa. Inicijalizira objekt odmah po kreiranju i može se koristiti za postavljanje vrijednosti članova objekta. Konstruktor je sintaktički sličan metodi u objektno orijentiranom programiranju, a metoda je postupak povezan s klasom i uključen u bilo koji objekt te klase. Ukratko, konstruktor se naziva svaki put kada se stvori objekt klase. Najvažnija stvar kod konstruktora je da nemaju povratni tip, čak ni prazninu.

Što je Destruktor?

Destruktor je potpuno drugačiji koncept; to je posebna metoda koja se poziva kada se instanca klase izbriše iz memorije. Destruktor se poziva automatski kada objekt više nije potreban ili će uskoro nestati ili se eksplicitno pušta. Glavna svrha destruktora je riješiti se resursa koji je objekt koristio tijekom svog životnog ciklusa. Objektu daje posljednju priliku da oslobodi bilo koju dodijeljenu memoriju, tako da će biti dovoljno prostora na hrpi za spremanje novih objekata za učinkovito pokretanje programa. Destruktori se često koriste zajedno s konstruktorima, osim što se koriste za uništavanje objekata koji su stvoreni pomoću konstruktora. Ideja je deinicijalizirati objekte kad se obrišu kako bi se oslobodila memorija za nove objekte. Poput konstruktora, destruktori su u definiciji klase definirani kao podprogrami i imaju isto ime kao i naziv klase, osim što je destruktor prefiksan s ~ (tilde) operator. U C ++ se destruktori nazivaju izričito, međutim, u Javi nema destruktora.

Razlika između konstruktora i destruktora

Namjena konstruktora i destruktora

I konstruktori i destruktori posebne su funkcije svake klase, ali s različitim konceptima. Konstruktor se koristi za inicijalizaciju instancije klase, što znači da se poziva svaki put kada je klasa instancirana, dok je destruktor suprotno od konstruktora koji se zove obratnim redoslijedom konstruktora.

Dodjela memorije

Konstruktor se zove svaki put kada se stvori nova instanca klase. To je u osnovi članska funkcija klase koja inicijalizira objekt odmah po kreiranju i dodjeljuje mu memoriju. S druge strane, destruktor se poziva kada se instanca klase izbriše iz memorije koja zauzvrat deinicijalizira objekte koji su stvoreni pomoću konstruktora kako bi oslobodili memoriju za nove objekte.

Ime

I konstruktori i destruktori posebne su funkcije člana klase s istim imenom kao i naziv klase, osim što je destruktor prefiksan s operatorom ~ (tilde). Konstruktor nije ništa drugo nego metoda koja nema povratni tip, čak nije ništav, dok su destruktori upravo suprotno od konstruktora.

preopterećenje

I konstruktori i destruktori se automatski pozivaju nakon stvaranja i brisanja. Međutim, za razliku od konstruktora, destruktori se ne mogu preopteretiti. Preopterećenje je objektno orijentirani koncept programiranja koji vam omogućuje definiranje dvije ili više funkcija s istim imenom kako biste ih mogli nazvati s različitim popisima argumenata.

argumenti

U objektno orijentiranom programiranju konstruktori često prihvaćaju argumente koje koriste za postavljanje potrebnih varijabli člana, dok destruktori ne prihvaćaju nikakve argumente.

Rad Konstruktora i Destruktora

Konstruktori omogućuju da objekt inicira dio svoje vrijednosti prije uporabe, dok destruktori omogućuju da objekt izvrši neki dio koda u vrijeme kada je uništen..

 Destruktor stihova konstruktora: Usporedna tablica

Sažetak konstruktora Vs. peć za sagorijevanje otpadaka

I konstruktori i destruktori posebne su funkcije člana klase s istim nazivom kao i naziv klase, osim što destruktorima prethodi operater ~ tilde. Konstruktor nije ništa drugo nego metoda osim što se naziva kada se stvori instanca objekta, dok je destruktor upravo suprotno od konstruktora koji se pozivaju kada se instanca objekta izbriše iz memorije. Svrha destruktora je deinicijalizirati objekte koji su stvoreni pomoću konstruktora kako bi se oslobodio memorijski prostor za smještaj novih objekata.