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