Problemer med Constructor class, der opretter en Polygon
Jeg har lavet en class, der extends Polygon, og i dens constructor overfører jeg en x og en y-værdi, og vil så beregne de resterende punkter ud fra de 2 værdier. Men hvordan opretter jeg min polygon i min constructor? Skal jeg til at bruge add, for hvert eneste punkt, eller kan jeg oprette den på en smartere måde? Så vidt jeg kan se, kan jeg ikke bruge new Polygon(...)...i hvert fald ved jeg ikke, hvad jeg skal sætte før lighedstegnet så.
Hvis man ser på dokumentation for polygon [1] så kan du vel oprette et array med x og y værdier (et array til hver). Hver gang du beregner et punkt tilføjer du dem til array'et. Når du så har beregnet alle punkterne smider du de 2 arrays til constructoren i polyon.
Udfra dokumentationen ved jeg ikke om der er? Hvordan ser din kode ud? Du kan jo også når du har beregnet et punkt tilføje det via addPoint. Så skal du bare oprette et tomt polygon.
Det var netop det, jeg selv skrev, og det er det, der er mit problem, fordi det bliver lidt besværligt med add, synes jeg :) Tænkte, at man vel kunne oprette et polygon i constructoren med this = new Polygon(...)...jeg ved bare ikke hvad der skulle stå i stedet for this, for det ser ikke ud til at være det rigtige.
Yep, den er jeg skam med på, mere newbie er jeg trods alt heller ikke ;) Jeg vidste bare ikke hvordan jeg nemmest muligt lavede mit Polygon i min constructor, men det tror jeg faktisk, som nævnt før, at jeg selv har fundet ud af nu...Testing in progress :)
Mit problem er at det eneste, jeg kan benytte, så vidt jeg kan se, er addPoint, og det bliver for besværligt, hvis jeg skal gøre det for samtlige punkter. Det med arrayet vil jo ikke virke, for hvordan skulle jeg så tilføje dem til min class i constructor metoden?
Se, det virker jo fint, men giver mig så et andet problem, for jeg har en if sætning, som jeg er nødt til at gennemføre i min constructor, men super skal åbenbart være den første linje???
super skal være første kald, men: - du kan godt kalde super med expressions - du kan kalde statiske metoder
(fjollet) eksempel:
package march;
public class SuperTrick { public static void main(String[] args) { System.out.println(new C(true, 2)); } }
class P { private int v; public P(int v) { this.v = v; } public String toString() { return ("v=" + v); } }
class C extends P { public C(boolean add, int v) { super(add ? up(v) : down(v)); } public static int up(int v) { return (v + 1); } public static int down(int v) { return (v - 1); } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.