Konstruktor
Konstruktor představuje speciální metodu používanou při inicializaci datových položek. V předchozím kódu jsme použili poněkud nepohodlný způsob ve tvaru objekt.polozka. Tuto konstrukci by v některých případech nebylo možno použít, k datovým položkám deklarovaných jako privátní bychom se nedostali z vnějšku třídy.
Při inicializování datových položek je proto používána specializovaná metoda zvaná konstruktor. Je volán v okamžiku vytvoření objektu.
Souradnice sour;
sour=new Souradnice(); //ted je volan konstruktor
Konstruktor má následující vlastnosti
Konstruktor tedy umožňuje provádět inicializaci objektu při jeho vytvoření. Implicitní konstruktor. Implicitní konstruktor je konstruktor bezparametrický. Pokud nevytvoříme konstruktor vlastní, je automaticky generován právě implicitní konstruktor. Ten umožňuje provést inicializaci datových položek na výchozí hodnoty. V našem případě by byly proměnné delka, uhel inicializovány na hodnoty 0.
Pokud bychom chtěli v rámci implicitního konstruktoru inicializovat proměnné na jiné než výchozí hodnoty, museli bychom si konstruktor napsat sami. Následující konstruktor provede inicializaci datových položek třídy na hodnoty 10(délka) a 20 (úhel).
Souradnice()
{
delka=10;
uhel=20;
}
Pokud budeme vytvářet nové instance třídy souřadnice podle implicitního konstruktoru, všechny datové položky objektů budou inicializovány na stejné hodnoty. Podobného výsledku bychom mohli dosáhnout, pokud bychom upravili deklaraci třídy, a obě proměnné inicializovali zde.
public class Souradnice
{
private double delka=10;
private double uhel=20;
...
}
Odkaz this
Existuje speciální typ odkazu, který má každá z metod. Odkaz this ukazuje na objekt, se kterým byla metoda volána. Tento odkaz je skrytý, není potřeba ho někde inicializovat. Zaručuje, že každá metoda pracuje s daty svého objektu. S odkazem this pracujeme také prostřednictvím tečkové notace. Pro bližší pochopení lze výše uvedený implicitní konstruktor zapsat prostřednictvím this.Souradnice()
{
this.delka=10;
this.uhel=20;
}
Autor: Filip Koval