Hallo zusammen,
Ich möchte einen Datentyp entwickeln der Point2D Objekte in einer Sequenz(ich benutze den Datentyp Vector) speichert, aber zudem noch in der Lage ist neue Sequenzen mit den selben Punkten, in bestimmter Reihenfolge (also Permutationen) und Partitionen zu erstellen.
Also hab ich mir gedacht das es sinnvoll wäre für die PermutationsListen
eine Unterklasse von Vector zu erstellen, welche einiege Methoden wie z.B. boolean add(E o) privat macht damit von außen nicht an diesen Listen rumgefuscht wird. Bei diesen Methoden mit den generischen Datentypen ist jetzt die Unklarheit wie die zu erstellen sind. Allein schon den Kopf
boolean add(E o) (E hat nen Unterstrich) bekomme ich nicht ohne das Eclipse meckert. Kann mir jemand sagen, wie ich solche Methoden richtig überschreiben kann bzw. private mache(aber dazu müssen sie wohl komplett überschrieben werden oder?).
Für Hinweise wie ich diese Datenstruktur besser gestalten sollte wäre ich natürlich auch sehr Dankbar.
ramin
was für nen Datentyp soll E_o denn darstellen?
entweder
add(Point E_o)
oder
add(Object E_o)
oder
add(deinEigenerdatenTyp E_o)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
was für nen Datentyp soll E_o denn darstellen?
entweder
add(Point E_o)
oder
add(Object E_o)
oder
add(deinEigenerdatenTyp E_o)
so steht es in der API, ist wohl was allgemeines extends …> dshalb frag ich ja. add(Point2D p) würde das ursprünglich add ja nicht überschreiben oder?
Hey Ramin.
Wenn du dich vom Vector ableiten willst, müsste das z.B. so aussehen:
public class Point2DVector extends Vector {
public boolean add(Point2D p) {
return super.add(p);
}
}
Also hab ich mir gedacht das es sinnvoll wäre für die
PermutationsListen
eine Unterklasse von Vector zu erstellen, welche einiege
Methoden wie z.B. boolean add(E o) privat macht damit von
außen nicht an diesen Listen rumgefuscht wird.
Das wirst du damit aber nicht erreichen können. Du kannst die Sichtbarkeit von geerbten Methoden nicht ändern. Die add(…)-Methoden von Vector sind alle public, die kannst du in der abgeleiteten Klasse nicht als private deklarieren!
Für Hinweise wie ich diese Datenstruktur besser gestalten
sollte wäre ich natürlich auch sehr Dankbar.
Du könntest dir eine Klasse schreiben, die eine typisierten Vector enthält und diese dann mit den benötigten Methoden versehen.
public class Point2DVector {
private Vector points = new Vector();
// Welche Methoden auch immer du haben willst...
public boolean add(Point2D p) {
return this.points.add(p);
}
}
Viel Erfolg weiterhin.
Chris
nö, es würde einen Punkt nach Object wrappen und dann add(Object) ausführen
quasi
add( (Objekt) eigentlichEgalWasDuReinsteckst )
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Danke Chris, das hat mir geholfen!
ramin