Klíčový rozdíl – konstruktor vs destruktor
Většina programovacích jazyků podporuje objektově orientované programování (OOP). Je to paradigma, které pomáhá modelovat software nebo program pomocí objektů. OOP zlepšuje produktivitu a udržovatelnost. V OOP je vše považováno za objekt. Objekty jsou vytvářeny nebo konkretizovány pomocí tříd. Konstruktor a destruktor jsou běžné pojmy v objektově orientovaném programování. Tento článek popisuje rozdíl mezi konstruktorem a destruktorem. Konstruktor a destruktor jsou speciální členské funkce ve třídě. Konstruktor a destruktor mají stejný název jako třída, ale destruktor má znaménko vlnovky (~). Klíčový rozdíl mezi konstruktorem a destruktorem je v tom, že konstruktor se používá k přidělení paměti objektu, zatímco destruktor se používá k uvolnění paměti objektu.
Co je to konstruktér?
Konstruktor je speciální členská funkce ve třídě, která přiděluje paměť objektu. Lze jej použít k poskytnutí hodnot pro datové členy. Konstruktor je vyvolán při vytvoření objektu. Má stejný název jako název třídy. Konstruktor nevrací žádnou hodnotu. Proto neobsahuje návratový typ. Konstruktor může také přijímat parametry. Konstruktor s parametry je známý jako parametrizovaný konstruktor.
Příklad konstruktoru je následující.
obdélník veřejné třídy{
int délka, šířka;
public Rectangle(int p, int q){
length=p;
width=q;
}
public int countArea(){
zpět (délkašířka);
}
}
Podle výše uvedeného kódu má konstruktor stejný název jako název třídy. Konstruktor Rectangle přijímá dva parametry. Jsou to p a q. Celočíselná hodnota p je přiřazena délce. Celočíselná hodnota q je přiřazena šířce. V calcu alteArea se vypočítá násobení délky a šířky, aby se zjistila plocha obdélníku. V hlavním programu může programátor vytvořit objekt typu Rectangle a předat argumenty. např. Obdelnik rect1=new Rectangle(2, 3). Poté se zavolá parametrizovaný konstruktor a přiřadí hodnoty délce a šířce.
Obrázek 01: Konstruktor a destruktor
Pokud existuje konstruktor bez jakýchkoli parametrů, nazývá se výchozí konstruktor. Pokud programátor nedefinuje konstruktor, bude vyvolán výchozí konstruktor. Pokud existuje třída jako Student a když programátor vytvoří objekt typu Student, zavolá se výchozí konstruktor. např. Student s1=new Student(); Ve třídě může být více konstruktorů s různými parametry a různými datovými typy. Podle toho lze zavolat příslušný konstruktor. Proto mohou být konstruktory přetíženy.
Co je to destruktor?
Destruktor je speciální členská funkce ve třídě. Používá se k alokaci paměti pro objekt vytvořený konstruktorem. Destruktor je vyvolán, když je objekt zničen. Provádí úložiště čištění, které již není potřeba. Stejně jako konstruktor má i destruktor stejný název jako třída. Obsahuje také symbol vlnovky (~).
Destruktor nevrací žádnou hodnotu. Na rozdíl od konstruktoru destruktor nepřijímá žádné parametry. Destruktor tedy nepodporuje přetížení. Deklarování destruktoru je považováno za dobrou programátorskou praxi, protože uvolňuje paměťový prostor a tento prostor lze využít pro uložení některých dalších objektů. Syntaxe destruktoru je podobná jako ~className() {}. např. ~Obdélník() { }; Ve třídě může být pouze jeden destruktor.
Jaké jsou podobnosti mezi konstruktorem a destruktorem?
- Konstruktor i destruktor jsou spojeny s objekty.
- Konstruktor i destruktor nevrací žádnou hodnotu.
- Konstruktor i destruktor jsou volány automaticky.
Jaký je rozdíl mezi konstruktorem a destruktorem?
Konstruktor vs Destruktor |
|
Konstruktor je speciální člen ve třídě, který se používá k alokaci paměti objektu. | Destruktor je speciální člen třídy, který se používá k uvolnění paměti objektu. |
Způsob vyvolání | |
Při vytvoření objektu je vyvolán konstruktor. | Když je objekt zničen nebo smazán, je volán destruktor. |
Použití | |
K alokaci paměti pro objekty se používá konstruktor. | Destruktor se používá k uvolnění paměti pro objekty. |
Parametry | |
Konstruktor přijímá parametry. | Destruktor nepřijímá parametry. |
Počet konstruktérů a destruktorů | |
Může existovat více konstruktorů s různým počtem parametrů a různými typy parametrů. | Ve třídě může být jeden destruktor. |
Rychlost provedení | |
Konstruktor má stejný název jako název třídy. | Destruktor má stejný název jako název třídy se symbolem vlnovky (~). |
Přetížení | |
Konstruktor může být přetížený. | Destruktor nelze přetížit. |
Shrnutí – Konstruktor vs Destruktor
OOP je běžné paradigma ve vývoji softwaru. Může zjednodušit komplexní projekt. V OOP se používá konstruktor a destruktor. Konstruktor a destruktor mají stejný název jako třída, ale destruktor má znak ~. Rozdíl mezi konstruktorem a destruktorem je ten, že konstruktor se používá k přidělení paměti objektu, zatímco destruktor se používá k uvolnění paměti objektu.
Stáhněte si PDF Constructor vs Destructor
Verzi tohoto článku si můžete stáhnout ve formátu PDF a použít ji pro offline účely podle citace. Stáhněte si prosím PDF verzi zde: Rozdíl mezi konstruktorem a destruktorem