Interface Interface und seine Implementierung

Diskutiere Interface und seine Implementierung im Java Basics - Anfänger-Themen Bereich.
S

SafeDebagger

Ich soll einen generischen Datentyp Sammler (mit <T>) als Interface schreiben, der drei beliebige Objekte speichern lassen soll. Außerdem soll ich folgende Methoden darin einbauen:
• Methode fuegeHinzu zum Speichern eines Objekts an einer der drei Speicherstellen. Der erste Parameter soll die Speicherstellennummer (1,2 oder 3) als int-Wert angeben. Die Methode kann eine IllegalArgumentException werfen, wenn eine falsche Speicherstellennummer angegeben wird.
• Methode istLeer zum Prüfen, ob noch kein Objekt gespeichert wurde. Der Rückgabewert soll vom Typ boolean sein.

Dieses Interface soll ich dann in einer anderen Klasse implementieren, wobei die Art der Implementierung der 3 Speicherstellen frei von mir wählbar sein sollen...

Ich bin etwas ratlos, wie man überhaupt ein Interface in Kombination mit einem generischen Datentyp verknüpft. Und dann hab ich nivht verstanden inwiefern ich diese Exception im Interface darstellen kann und die Implementierungsaufgabr versteh ich gar nicht
 
mihe7

mihe7

Java:
interface Sammler<T> {
    void fuegeHinzu(int nr, T value) throws IllegalArgumentException;
    boolean istLeer();
}
Java:
class SammlerImpl<T> implements Sammler<T> {
    @Override
    public void fuegeHinzu(int nr, T value) throws IllegalArgumentException {
         // Implementierung
    }
    @Override
    public boolean istLeer() {
         // Implementierung
    }
}
 
S

SafeDebagger

[ANSCHLUSSFRAGE]

Vielen lieben Dank. Nur eine anschließende Frage: Die angegebene Exception ist ja eine RuntimeException. Benötigt man da trotzdem das throws oder hat das mit un-/geprüften Exceptions gar nichts zu tun?
 
Zuletzt bearbeitet:
S

SafeDebagger

Java:
interface Sammler<T> {
    void fuegeHinzu(int nr, T value) throws IllegalArgumentException;
    boolean istLeer();
}
Java:
class SammlerImpl<T> implements Sammler<T> {
    @Override
    public void fuegeHinzu(int nr, T value) throws IllegalArgumentException {
         // Implementierung
    }
    @Override
    public boolean istLeer() {
         // Implementierung
    }
}

Man muss ja um was zufügen zu können ein Feld erzeugen. Mach ich das im Interface oder in der implemntierenden Klasse?
Sieht das Feld so aus?
Java:
Object[ ] feld = new Object[3];
 
mrBrown

mrBrown

Nur eine anschließende Frage: Die angegebene Exception ist ja eine RuntimeException. Benötigt man da trotzdem das throws oder hat das mit un-/geprüften Exceptions gar nichts zu tun?
Da es eine RuntimeException ist, muss die nicht angegeben werden, oftmals macht man das aber trotzdem, damit’s direkt ersichtlich ist :)
 
Thema: 

Interface und seine Implementierung

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben