Package und schnittstelle

hallo
ich moechte eine Applikation schreiben die eine Klasse IntVek enthaelt
diese Klasse hat einen int-Vector.die laenge des Vector soll beim erzeugung eines Objekt gegeben und falls keine gegeben wird die standartwert 5 genommen.
beim Ueberschritten der aktuellen Laenge durch einfuegen verlaengert das Objekt sein speicher um eine Inkrementlaenge
diese soll auch beim erzeugung gegeben falls keine gegben wird wieder eine standartwert 5 gennomen.
dann muss ich eine schnittstelle realisieren damit ein hauptprogramme (Hauptklasse) fonktioniert .diese verwendet die klasse IntVek .ich habe das hauptprogramme leider nicht dabei
ich habe die klasse IntVek realisiert als java applikation und habe ich sie eine package zugeordnet.
in meinhauptprogramme habe ich die klasse importiertdurch
import Packagename.IntVek
ich habe 2fehler gekrieget eine hat mit
aber wenn du meine frage nicht verstanden hast dann kann ich das morgen hinzufuegen.
danke

Hallo Youssef,

hallo
ich moechte eine Applikation schreiben die eine Klasse IntVek enthaelt
diese Klasse hat einen int-Vector.die laenge des Vector soll beim erzeugung eines Objekt gegeben und falls keine gegeben wird die standartwert 5 genommen.
beim Ueberschritten der aktuellen Laenge durch einfuegen verlaengert das Objekt sein speicher um eine Inkrementlaenge
diese soll auch beim erzeugung gegeben falls keine gegben wird wieder eine standartwert 5 gennomen.

–snipp
ein java.util.Vector nimmt alle Arten von Objekten auf. Falls du einen primitive ‚int‘ darin speichern willst, muss du sie in ein Integerobjekt kapseln:
z.B.
java.util.Vector v = new java.util.Vector(); v.addElement(new Integer(intVariableOderWert));

Ein Vector verwaltet seine Größe automatisch. Da du die IntVek-Klasse in Java geschrieben hast, solltest du irgendwo die API haben, dort kannst du alles zur Vectorklasse nachlesen. Tip: Setze die Startseite deines Browsers auf die index.html der docu, und du hast sie immer griffbereit!
–snapp

dann muss ich eine schnittstelle realisieren damit ein hauptprogramme (Hauptklasse) fonktioniert .diese verwendet die klasse IntVek .ich habe das hauptprogramme

–snipp
Da gibt es verschiedene Möglichkeiten:

  • Die ‚Hauptklasse‘ erzeugt ‚in sich‘ ein Objekt vom typ IntVek, also in der Hauptklasse:
    packageName.IntVek iv = new packageName.IntVek();

damit kennt HK alle Methoden von IntVek, soweit erreichbar.

Falls du möchtest, das IntVek die Hauptklasse kennt, muss du die Beiden mit einander bekannt machen.
Das geht am einfachsten wenn IntVek einen zusätzlichen Constructor hat, der als Parameter ein ‚Hauptklasse-Objekt‘ aufnimmt:

Dazu muss du zunächst in IntVek eine Klassenvariable für deine HK definieren, die die relation zum HK speichert:

packageName.HauptklasseName meinHKlasse;

public void IntVek(packageName.HauptklasseName meinHKlasse)
{
this.meinHKlasse=meinHKlasse;
//Hier kannst du eine Retourkutsche einrichten und eine Methode in HK aufrufen
//um IntVek dort bekannt zu machen. z.B.:
meinHKlasse.notify(this); //wobei ‚notify‘ selbstdefiniert ist !
}

, alternativ kannst du in IntVek auch eine Methode dazu implementieren die etwa den gleichen Code hat.

So, damit kennen sich beide gegenseitig und können auf die erlaubten Methoden zugreifen.

–snapp

leider nicht dabei
ich habe die klasse IntVek realisiert als java applikation und habe ich sie eine package zugeordnet.
in meinhauptprogramme habe ich die klasse importiertdurch
import Packagename.IntVek
ich habe 2fehler gekrieget eine hat mit

–snipp
also, hier hast du wohl irgendwie ein Tippfehler, oder so.
Du weiss ja, dass Package ein oder mehrere Verzeichnisse auf deine HD darstellen.
Wenn du folgende Konstellation hast:

c:\eigene dateien\Youssef_Solutions\meineArchitektur\IntVek.class

dann soll dein Classpath bzw. JavaHome auf c:\eigene dateien\ zeigen und

Youssef_Solutions.meineArchitektur.*;

wäre dann das Package

–snapp

cu,
Marc

vielen dank