Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte gerne eine Klasse programmieren die von der Klasse HashMap erbt.
D.h. wenn ich eine Instanz von "meineKlasse" erzeuge, soll das eine HashMap<String, String> sein.
Wie muss ich den Konstruktor aufbauen, damit das funktioniert?
Java:
public class meineklasse extends HashMap {
public meineklasse() {
???
}
}
In der Klasse "meineklasse" ist eine Methode "public HashMap xy" die als "return" eine hashMap zurück gibt.
Ich möchte von meinem Hauptprogramm eine Instanz der Klasse "meineklasse" aufrufen, die Methode "public HashMap xy" ausführen, und die soll dann die HashMap füllen.
Oder habe ich micht verzettelt? Macht das so Sinn?
Ergänzung: Dann kann ich in der Hauptklasse die "meineKlasse" mit dem Rückgabewert der Methode füllen und ausgeben.
Habe ich das richtig verstanden, dass du
- ein Objekt einer Klasse erstellen willst
- davon eine Methode aufrufen willst
- und dir die dann eine HashMap<String, String> zurück gibt
- und dann diese HashMap in eine andere Methode der MeineKlasse einsetzen?
Vererbung ist nur für "A ist ein B" Bezeihungen, hier wird doch aber die HashMap nur ganz normal verwendet. Von einer HashMap würde ich nur ableiten, wenn ich ihr Verhalten ändern müsste (also z.B. wenn ich alle Zugriffe loggen müsste, oder Listener benachrichtigen, wenn etwas hineinpackt wird).
Habe ich das richtig verstanden, dass du
- ein Objekt einer Klasse erstellen willst
- davon eine Methode aufrufen willst
- und dir die dann eine HashMap<String, String> zurück gibt
- und dann diese HashMap in eine andere Methode der MeineKlasse einsetzen?
Jaein, der Rückgabewert (HashMap) der Methode setze ich mit der Instanz der UnterKlasse (ebenfalls HashMap) in der Hauptklasse gleich und arbeite dann damit weiter. Somit kann ich mir dann mehrere Instanzen der Unterklasse aufrufen...
Ich brauche einfach verschiedene HashMaps in meiner Hauptklasse, da ich bei dem Methodenaufruf der Unterklasse 10 Parameter übergebe, die den Rückgabewert der Methode beeinflussen.
Bin inzwischen weg von der HashMap, denn ein StringArray[2] reicht mir als Rückgabewert auch. Ich glaube Die HashMap ist doch ein bisschen überdimensioniert.
Java:
import com.sun.xml.internal.fastinfoset.util.StringArray;
public class start {
public static void main(String[] args) {
Testklasse test = new Testklasse(); -> Soll ein StringArray[2] sein
test = Testklasse.getResult("param1", "param2", "param3", "param4", "param5");
-> Methode hat als Rückgabewert ein StringArray[2], wird gleichgesetzt mit test
}
}
Wie muss dann der Konstruktor in der Klasse Testklasse aussehen, damit eine Instanz der Testklasse ein StringArray[2] ist?
Java:
public class Testklasse {
public StringArray[] strArray;
public Testklasse() {
super();
strArray = new StringArray[2];
}
public StringArray[] getResult()
{
Berechnung...
return this.strArray
}
So habe ich es bislang aufgebaut. Doch leider ist die Instanz der Testklasse kein StringArray.
Das macht keinen sinn, test ist vom Typ Testklasse und kein String Array. Wozu legst du hier na instanz an wenn du die später nichtmehr verwenden willst?
test = Testklasse.getResult("param1", "param2", "param3", "param4", "param5");
Ja du hast Recht, habe ich gerade auch gemerkt. Habe es in String[] geändert, aber trotzdem Danke für den Hinweis.
Habe jetzt in meinem Aufruf eine Instanz der Testklasse, ein Objekt vom Typ String[], und dann den Methodenaufruf der Testklasse dessen Ergebnis in das Objekt resultSet vom typ String[] reingeschrieben wird.
Ich dachte einfach, wenn ich meiner Instanz der testklasse sage, du bist ein String[], das ich mir das String[] sparen kann. Aber scheinbar ist das nicht üblich.