Generische Klasse

bluebaby

Aktives Mitglied
Hallo,
Ich komm mal wieder nicht bei meiner Aufgabe weiter, ich hoffe ihr könnt mir vielleicht helfen.

Aufgabenstellung: Quiz-Klasse und schreibe anschließend den Quellcode. Dabei soll zu einer Frage, die immer ein String ist, eine beliebige Antwort-Art zugeordnet werden können (z.B. wieder Texte als Antwort oder ganze Zahlen oder auch Dezimalzahlen oder vielleicht auch Farben, Daten, etc.). Die Klasse Quiz soll dazu intern eine Map verwenden, die die Fragen als Schlüssel verwendet. Weiters soll die Quiz-Klasse folgende Methoden besitzen:
frageHinzu: Fügt eine Frage mit einer passenden Antwort zum Fragenpool dazu
zufallsFrage: Wählt zufällig eine Frage aus und gibt sie zurück
antwortCheck: überprüft, ob das als Parameter übergebene Frage-Antwort-Paar mit einem gespeicherten Frage-Antwort-Paar übereinstimmt. Wenn die Antworten gleich sind, gib true zurück, sonst false.
frageLoeschen: Löscht eine als Parameter übergebene Frage mit der zugehörigen Antwort aus der Map
fragenListe: speichert alle in der Map gespeicherten Fragen mit den zugehörigen Antworten in einen String und gibt diesen zurück.

Schreibe nun zwei verschiedene Quiz-Programme, die diese Quiz-Klasse verwenden. Die beiden Programme sollen unterschiedliche Datentypen für die Antworten verwenden.


Ich verstehe nicht ganz was zB.: die Methode hinzufügen machen soll, soll die in der Map gespeichert werden ? und was soll ich zurückgeben?. Weiters verstehe ich nicht ganz wie ich das mit der Antwort lösen soll <T> ist ja eine Typvariable und man soll ja verschiedenst Antworten können also nicht nur mit einem String.

Das habe ich daweil:

Java:
import java.util.*;

public class Quiz<T> {
	

	private T value;
	
	
	TreeMap <String, T>tMap = new TreeMap<String, T>();
	
	
	public void frageHinzu(String a){
		
		tMap.put(a,value);
		T var=tMap.get(a);
		T var2=tMap.get(value);
		
		
		
		}
	   
	}

Ich hoffe ihr könnt mir helfen,
bluebaby
 

Michael...

Top Contributor
Schreibe nun zwei verschiedene Quiz-Programme, die diese Quiz-Klasse verwenden. Die beiden Programme sollen unterschiedliche Datentypen für die Antworten verwenden.


Ich verstehe nicht ganz was zB.: die Methode hinzufügen machen soll, soll die in der Map gespeichert werden ? und was soll ich zurückgeben?. Weiters verstehe ich nicht ganz wie ich das mit der Antwort lösen soll <T> ist ja eine Typvariable und man soll ja verschiedenst Antworten können also nicht nur mit einem String.
So wie ich das verstanden habe, soll eine konkrete Implementierung der Quizklasse aber nur Antworten eines bestimmten Typs zu lassen. Somit würde ich die Klasse Quiz abstract machen und die geforderten Methoden nur als abstracte Methodenrümpfe definieren, die dann erst in den zwei konkreten Klassen implementiert werden.
 

bluebaby

Aktives Mitglied
Ich habe jetzt versucht die Klasse Quiz zu schreiben:

Java:
import java.util.*;

abstract class Quiz<T> {
	

	private T value;
	
	TreeMap <String, T>tMap = new TreeMap<String, T>();
	
	
	
	public abstract void frageHinzu(String a,T value);
	
	
	public abstract void zufallsFrage(String b);
	
	
	public abstract boolean antwortCheck(String a,T value);
	
	
	public abstract boolean frageLoeschen(String c,T value);
	
	public abstract String fragenListe();
	
	
}


Könnte das so stimmen und wie kann ich jetzt die Methoden in den beiden anderen Klassen verwenden?
bluebaby
 

Kevin94

Top Contributor
Ich seh die Aufgabenstellung anders. Ich würde sie soh interpretieren, das es eine generische, aber nicht abstrakte Klasse Quiz<T> gib und zwei Klassen, die diese Klasse mit unterschiedlicher Typisierung nutzen. Ein bsp für eine solche Klasse:

Java:
public class QuizTest1
{

public static void main(String args[])
{
    Quiz<Integer> quiz=new Quiz<Integer>();
    quiz.put("Was ist der Sinn des Lebens",42)
    //noch mehr put...
    
    Scanner sc=new Scanner(System.in);
    int richtig=0;
    for(int i=0;i<10;i++)
    {
         String frage=quiz.zufallsFrage();
         System.out.println(frage);
         int antwort=sc.nextInt(); 
         if(antwortCheck(frage,antwort)) richtig++;
         quit.frageLöschen(frage);
    }
    System.out.println( (richtig/10.0) +"% richtige Antworten");
}

}
 
B

bygones

Gast
Ich seh die Aufgabenstellung anders. Ich würde sie soh interpretieren, das es eine generische, aber nicht abstrakte Klasse Quiz<T> gib und zwei Klassen, die diese Klasse mit unterschiedlicher Typisierung nutzen. Ein bsp für eine solche Klasse:
dein bsp zeigt nicht eine implementierung der klasse, sondern nur ihre Verwendung. Und ob nun Quiz<T> abstract ist oder nicht - die Aufgabenstellung loest ihr beiden damit.

Aber es stimmt schon, dass bei der Aufgabenstellung an sich es noch keinen Sinn macht eine abstrakte Klasse einzufuehren. Wenn es nur um untersch. Typisierungen geht reicht hier eine simple implementierung... es gibt ja auch nicht eine StringArrayList, IntegerArrayList etc...
 

Landei

Top Contributor
Ich sehe ein Problem mit der Verwendung von [c]TreeMap<T>[/c] für einen Typ [c]T[/c], der nicht [c]Comparable<T>[/c] ist. Die Doku sagt zur Verwendung des parameterlosen Konstruktors:

public TreeMap()

Constructs a new, empty tree map, using the natural ordering of its keys. All keys inserted into the map must implement the Comparable interface.

Die einfachste Lösungsmöglichkeit wäre, stattdessen eine [c]HashMap[/c] zu verwenden. Alternativ könnte man den Typ [c]T[/c] entsprechen beschränken: [c]public class Quiz<T extends Comparable<T>> { ...[/c]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Generische Klasse Java Basics - Anfänger-Themen 6
M Methoden Generische Klasse - ändern einzelner Attributwerte Java Basics - Anfänger-Themen 2
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
F Collections Generische Klasse/Methoden Java Basics - Anfänger-Themen 19
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
B Was passiert, wenn eine konkrete Klasse von generische Klasse erbt? Java Basics - Anfänger-Themen 14
S Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
P Generische Klasse Java Basics - Anfänger-Themen 8
I Generische Funktion Java Basics - Anfänger-Themen 3
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
O Generische Typen Java Basics - Anfänger-Themen 9
M Generische Klassen "FlaschenRegal" Java Basics - Anfänger-Themen 13
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
J Sortierte generische Liste Java Basics - Anfänger-Themen 1
D statische generische Methoden Java Basics - Anfänger-Themen 3
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
D Generische Typen Java Basics - Anfänger-Themen 20
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
L Generische Liste Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
A Probleme mit MergeSort Generische Liste Java Basics - Anfänger-Themen 0
A Generische Methode Java Basics - Anfänger-Themen 4
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
M Generische Liste Java Basics - Anfänger-Themen 4
B Generische Methode Java Basics - Anfänger-Themen 2
B Generische Methoden Java Basics - Anfänger-Themen 8
L Generische Warteschlange Java Basics - Anfänger-Themen 8
A Generische Datentypen Java Basics - Anfänger-Themen 8
bluerob generische ArrayList -> erbende Objekte auslesen Java Basics - Anfänger-Themen 24
L Generische Containerklasse Java Basics - Anfänger-Themen 9
V Methoden Umwandlung in generische Methode Java Basics - Anfänger-Themen 8
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
S Generische HashMap Java Basics - Anfänger-Themen 2
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
L Generische ArrayList, CastProblem Java Basics - Anfänger-Themen 2
W generische Module Java Basics - Anfänger-Themen 2
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
C unterschied generische typen und supertypen als methodenparameter Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
F Generische Methoden Problem Java Basics - Anfänger-Themen 5
E Generische Arrays durch Typecast mit Object-Array Java Basics - Anfänger-Themen 11
B Generische Vererbung was ist der Unterschied? Java Basics - Anfänger-Themen 4
W Generische Klassen Java Basics - Anfänger-Themen 3
W Generische Klassen und Casting Java Basics - Anfänger-Themen 6
F Generische Typen auch für statische Methoden? Java Basics - Anfänger-Themen 13
J array über generische arraylist Java Basics - Anfänger-Themen 7
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
N 2 dimensionale generische Arrays Java Basics - Anfänger-Themen 9
H Statische generische Methode Java Basics - Anfänger-Themen 2
G Frage zum Ungang mit Generische Datentypen Java Basics - Anfänger-Themen 4
0x7F800000 generische arrays mal wieder )-; Java Basics - Anfänger-Themen 6
D generische methode <T> void . Java Basics - Anfänger-Themen 9
J Generische Methoden Java Basics - Anfänger-Themen 6
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
S generische Felder Java Basics - Anfänger-Themen 2
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
F Generische Methode - was bringt der Wildcard Operator? Java Basics - Anfänger-Themen 7
F Generische Liste von generischen Objekten. Java Basics - Anfänger-Themen 3
H generische Methoden Java Basics - Anfänger-Themen 5
N generische HashMap und Iterator Java Basics - Anfänger-Themen 2
H generische Bausteine, heterogene Datenstrukturen Java Basics - Anfänger-Themen 2
J generische klassen neue Instanz Java Basics - Anfänger-Themen 5
H Generische Klassen. Java Basics - Anfänger-Themen 16
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben