Generische Klassen, das erste Mal.

Status
Nicht offen für weitere Antworten.

CaptainItalo

Mitglied
Hallo,
kann mir jemand bitte darüber Auskunft geben, ob zu folgender Aufgabenstellung meine Lösung ausreicht?
Die Aufgabe:
"Es soll ein Programm für die Archivierung von Medien geschrieben werden, das CDs und Bücher in verschiedenen
Regalen verwaltet. Die Klasse Book enthält alle Attribute eines Buches wie ISBN-Nummer, Titel, Autor
und Erscheinungsjahr. Die Klasse CD enthält alle Attribute einer CD wie EAN-Nummer, Titel, Interpret und
Erscheinungsjahr. Beide Klassen werden von der abstrakten Klasse Medium abgeleitet.
Die klassische Vorgehensweise für die Verwaltung von CDs und Bücher in entsprechenden Regalen wäre: Für
die Lagerung der CDs und Bücher existiert entsprechend ein CD-Regal bzw. Bücherregal, die von einem allgemeinen
Regal für Medien (Rack) abgeleitet sind. Jede Regalklasse besitzt eine Instanzvariable itemList vom
Typ Vector und ermöglicht die Speicherung aller Medien in einem Regal. In die Regale können CDs bzw.
Bücher hineingestellt (putIntoRack(in item:)) und wieder herausgenommen (takeOutOfRack(in item:)) werden."

So, ist es korrekt, dass beide Klassen CD & Book von Klasse Medium erben?

Code:
public class Book<T extends Medium> {

	/**
	 * @param args
	 */

	private T isbnNummer;
	private T titel;
	private T author;
	private T erscheinungsjahr;
	
	public Book (T isbnNummer, T titel, T author, T erscheinungsjahr){
		this.isbnNummer = isbnNummer;
		this.titel = titel;
		this.author = author;
		this.erscheinungsjahr = erscheinungsjahr;
	}

	public T getIsbnNummer(){
		return isbnNummer;
	}
	public T getTitel(){
		return titel;
	}
	public T getAuthor(){
		return author;
	}
	public T getErscheinungsjahr(){
		return erscheinungsjahr;
	}
	
	public void setIsbnNummer (T isbnNummer){
		this.isbnNummer = isbnNummer;
	}
	public void setTitel (T titel){
		this.titel = titel;
	}
	public void setAuthor (T author){
		this.author = author;
	}
	public void setErscheinungsjahr (T erscheinungsjahr){
		this.erscheinungsjahr = erscheinungsjahr;
	}
}

So, die Klasse CD sieht ja fast genauso aus, deshalb habe ich sie jetzt weggelassen.
Sind bei mir denn beide Klassen CD & Book fertig implementiert?
Oder fehlt bei mir noch das reinstellen, bzw. rausnehmen der Bücher/CDs?
 
S

SlaterB

Gast
public class Book extends Medium {

Titel und Erscheinungsjahr gehören in Medium, das ist Vererbung und hat nix mit Generics zu tun!,

T titel;
T erscheinungsjahr;

ist ja eine schöne Bescherung, das sind Strings oder Dates!


---------

nur für das Regal brauchst du Generics, damit sowohl CDs als auch Bücher reinpassen:

public class Regal<T extends Medium> {
 

CaptainItalo

Mitglied
Danke, das bringt mich weiter,weilich mich gefragt habe was in die Klasse Medium gehört...
Ok, ist es da korrekt immer mit dem Typ 'T' zu arbeiten?
Oder kann ich auch in Klasse CD bzw Book für die beiden Variablen 'Nummer' & 'author/interpreter' mit int & String arbeiten?
 
S

SlaterB

Gast
nochmal: in den Klassen Medium, CD und Book hat Generics nichts zu suchen,
an keiner Stelle


> kann ich auch in Klasse CD bzw Book für die beiden Variablen 'Nummer' & 'author/interpreter' mit int & String arbeiten

du MUSST ;)
 

CaptainItalo

Mitglied
Ok,
was muss ich in die Klasse Regal schreiben?
Kommen dort die Möglichkeiten rein, eine CD bzw ein Buch zu entnehmen oder einzufügen?
& die 'Instanzvariable itemList vom Typ Vector' muss ich nur in die Klasse Regal schreiben?! ja?
 
S

SlaterB

Gast
ja, die genannten Operationen und der Vector,
das ist schon mal das enscheidene
 

CaptainItalo

Mitglied
Gut danke,
wenn ich dann meine Klasse Book schreibe, ist das dann so ok?!
Code:
public class Book extends Medium {

	/**
	 * @param args
	 */

	private int isbnNummer;
	private String author;
	
	
	public Book (int isbnNummer, String author){
		this.isbnNummer = isbnNummer;

		this.author = author;

	}

	public int getIsbnNummer(){
		return isbnNummer;
	}

	public String getAuthor(){
		return author;
	}

	public void setIsbnNummer (int isbnNummer){
		this.isbnNummer = isbnNummer;
	}

	public void setAuthor (String author){
		this.author = author;
	}
}

Oder muss in meinen Konstruktor noch das Geerbte (titel & erscheinungsjahr) von Medium hinein?
Wenn ich das mache, dann wird mir ein Fehler angezeigt...

& meine Klasse Medium, ist diese jetzt korrekt?
Code:
public abstract class Medium {

	/**
	 * @param args
	 */

	private String titel;
	private int erscheinungsjahr;
		
	public String getTitel(){
		return titel;
	}

	public void setTitel (String titel){
		this.titel = titel;
	}
	
	public int getErscheinungsjahr(){
		return erscheinungsjahr;
	}
	
	public void setErscheinungsjahr (int erscheinungsjahr){
		this.erscheinungsjahr = erscheinungsjahr;
	}

}

Wäre nett, wenn Du mir antworten würdest.
 
S

SlaterB

Gast
tja, ich finde: entweder den Konstruktor ganz leer oder alle 4 Attribute,
zwei nach oben weiterreichen:

public Book (String a, String b, int isbnNummer, String author){
super(a,b);
...
}

und in Medium dann natürlich auch ein Konstruktor für die beiden Felder
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
M Generische Klassen "FlaschenRegal" Java Basics - Anfänger-Themen 13
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
W Generische Klassen Java Basics - Anfänger-Themen 3
W Generische Klassen und Casting Java Basics - Anfänger-Themen 6
J generische klassen neue Instanz Java Basics - Anfänger-Themen 5
H Generische Klassen. Java Basics - Anfänger-Themen 16
I Generische Funktion Java Basics - Anfänger-Themen 3
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
D Generische Klasse Java Basics - Anfänger-Themen 6
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
O Generische Typen Java Basics - Anfänger-Themen 9
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
M Methoden Generische Klasse - ändern einzelner Attributwerte Java Basics - Anfänger-Themen 2
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
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
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
M Generische Liste Java Basics - Anfänger-Themen 4
B Generische Methode Java Basics - Anfänger-Themen 2
B Generische Klasse Java Basics - Anfänger-Themen 7
B Generische Methoden Java Basics - Anfänger-Themen 8
F Collections Generische Klasse/Methoden Java Basics - Anfänger-Themen 19
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
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
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
B Generische Vererbung was ist der Unterschied? Java Basics - Anfänger-Themen 4
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 Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
S generische Felder Java Basics - Anfänger-Themen 2
P Generische Klasse 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 Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
C Array von Klassen Java Basics - Anfänger-Themen 2
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben