Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Jenda 07. 10. 2012, 19:01:15
-
Dobry den, mam v zadani vytvorit v tride Circle dva konstruktory.
Jeden s dvěma parametry:
public Circle(Vertex2D center, double radius) {
this.center = center;
this.radius = radius;
} //kde Vertex2D center je tvoren dvema double ve tride Vertex2D. Konstruktor --> public Vertex2D(double x, double y)
No a druhy je konstruktor bez parametru,ale ma volat předchozí konstruktor s parametry a předá mu potřebné konstanty. Ja to napsal takto:
public Circle() {
this((0, 0), 1);
//nebere to ani: this(Vertex2D(0, 0), 1); ... v tomto pripade to rve ze nemuze najit metodu Vertex2D(int, int)
}
Nicmene mi to rve, ze za prvni nulou ma byt zavorka. Jak mam tedy volat ten predchozi konstruktor? Dekuji
-
nevim nevim, vetsina jazyku co znam chce klicove slovo new, ktery rika ze se vytvari nova instance a vola se konstruktor..
volani this()
co to je za jazyk, at se priucim?
-
Je to Java a samozrejme mate pravdu. Ja v tom furt hledal nejakou slozitost a na new jsem zapomnel. Dekuji
-
Áno, takto by to malo fungovať:
public Circle(Vertex2D center, double radius) {
this.center = center;
this.radius = radius;
} //kde Vertex2D center je tvoren dvema double ve tride Vertex2D. Konstruktor --> public Vertex2D(double x, double y)
public Circle() {
this(new Vertex2D(0, 0), 1);
//nebere to ani: this(Vertex2D(0, 0), 1); ... v tomto pripade to rve ze nemuze najit metodu Vertex2D(int, int)
}[/code
-
http://www.leepoint.net/JavaBasics/oop/oop-45-constructor-overloading.html