Konstruktor i razarač

Anonim

Klasa je u samoj srži objektno orijentiranog programiranja (OOP). To je poput nacrta za stvaranje objekata koji pružaju početne vrijednosti za varijable članova i funkcije članova. To je osnovni blok OOP-a koji definira prirodu budućeg objekta. Najvažnija stvar za klasu je da definira novu vrstu podataka i jednom definirana, može se koristiti za stvaranje objekata te vrste. Zato bi bilo dovoljno reći da je klasa predložak nekog objekta, a objekt je zapravo primjer klase. Koristi se za stvaranje i upravljanje novim objektima i potpora nasljeđivanju, što je jedan od osnovnih pojmova programski jezika usmjerenih na objekte, kao što je Java. Ukratko, klasa organizira informacije o vrsti podataka kako bi ponovno upotrijebili elemente pri izradi više primjeraka te vrste podataka. Podatke ili varijable definirane unutar klase nazivaju se instance varijable.

Što je konstruktor?

Konstruktor je posebna funkcija člana klase koja se zove kada se stvara instancu nekog objekta. Ponekad može biti teško inicijalizirati sve varijable u klasi svaki put kad se instanca stvara. Budući da je zahtjev za inicijalizaciju uobičajen u objektno orijentiranom programiranju, omogućava automatsko inicijalizaciju objekata prilikom izrade. Ovaj proces automatske inicijalizacije obavlja se korištenjem konstruktora. Razlog zbog kojeg se zove posebnim je jer instancna metoda obično ima isti naziv kao i klasa. Inicijalizira objekt odmah nakon stvaranja 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 predmet te klase. Ukratko, konstruktor se zove svaki put kad se stvori objekt klase. Najvažnija stvar za konstruktore je da oni nemaju povratni tip, ni praznina.

Što je destruktor?

Destruktor je sasvim drugačiji koncept; to je posebna metoda koja se naziva kada se primjer klase briše iz memorije. Destruktor se automatski naziva kada objekt više nije potreban ili će uskoro nestati ili će se izričito objaviti. Glavna svrha razaranja je da se riješi sredstava koje je objekt koristio tijekom svog životnog ciklusa. To daje objektu posljednju priliku za oslobađanje svake memorije koju je dodijelio tako da će biti dovoljno prostora na hrpi za pohranu novih objekata za učinkovito pokretanje programa. Destruktori se često koriste zajedno s konstruktorima, osim što se koriste za uništenje objekata koji su stvoreni pomoću konstruktora. Ideja je de-inicijalizirati objekte kada su izbrisani kako bi oslobodili memoriju za nove objekte. Poput konstruktora, destruktori se definiraju kao podprogrami u razrednoj definiciji i imaju isti naziv kao naziv klase, osim što je destruktor predefiniran s ~ (tilda). Destilacije se izričito nazivaju u C + +, međutim, u Javau nema destruktora.

Razlika između konstruktora i razarača

Svrha graditelja i razarača

Oba konstruktora i destruktori su posebne funkcije članova svakog razreda, ali s različitim konceptima. Konstruktor se koristi za inicijalizaciju instanca klase, što znači da se poziva svaki put kada se klasi instancira, dok je destruktor suprotan od konstruktora koji se naziva obrnutim redoslijedom konstruktora.

Određivanje memorije

Konstruktor se zove svaki put kada se stvori nova instanca klase. To je u osnovi član funkcija klase koja inicira objekt neposredno nakon stvaranja i alocira memoriju na njega. S druge strane, destruktor se naziva kada se primjer klase briše iz sjećanja koja zauzvrat inicira objekte koji su stvoreni pomoću konstruktora kako bi oslobodili memoriju za nove objekte.

Ime

Oba konstruktora i destruktora su posebne funkcije članova klase s istim imenom kao i naziv klase, osim što je destruktor predefiniran operaterom ~ (tilda). Konstruktor nije ništa drugo nego metoda bez povratnog tipa, čak ni praznina, dok su destruktori upravo suprotni od konstruktora.

preopterećenje

Oba konstruktora i destruktora nazivaju se automatski 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 da definirate dvije ili više funkcija istog naziva, tako da ih možete nazvati različitim argumentima.

argumenti

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

Rad konstruktora i razarača

Konstruktori dozvoljavaju objektu inicijalizaciju neke od njegovih vrijednosti prije nego što se koristi, dok destruktori dopuštaju da objekt izvrši neki dio koda u vrijeme kada je uništen.

Strukturni stihovi uništavanja: usporedni prikaz

Sažetak konstruktora vs. peć za sagorijevanje otpadaka

Oba konstruktora i destruktori su posebne funkcije članova klase s istim imenom kao i naziv klase, osim što destruktori prethode operater tilde.Konstruktor nije ništa drugo osim metoda osim što se zove kada se stvara instancu objekta, dok je destruktor točno suprotan od konstruktora koji se zovu kada se primjerak objekta briše iz memorije. Svrha destruktora je de-inicijalizirati objekte koji su stvoreni pomoću konstruktora kako bi se oslobodio prostor za pamćenje za smještaj novih objekata.