Methoden eine Instanz einer eigenen Klasse als parameter übergeben

Streijost

Mitglied
Folgendes Beispiel: Ich möchte gerne Bücher in ein Regal stapeln sie sortieren,herausnehmen,einfügen usw.

[JAVA=42]
public class Buch{

private String buchtitel ="";
private String autor ="";

public Buch(String buchtitel,String autor){
this.buchtitel=buchtitel;
this.autor = autor;
}
// einige getter/setter methoden

public String getBuchtitel(){}
public String getAutor(){}
public void setBuchtitel(){}
public void setAutor(){}
}
[/code]

Hier ist das Regal was die Bücher nach kategorie einordnet.

[JAVA=42]
public class Regal{

private HashMap<Buch,String>buchRegal;

public Regal(){
buchRegal = new HashMap<Buch,String>();
}


//methoden

public void putBuch(Buch b, String Kategorie){}
public void deleteBuch(Buch b){}
public String kategorie_von_Buch(Buch b){}
public List buecher_der_Kategorie(String Kategorie){}
public void print_regal_Inhalt(){};

}
[/code]

[JAVA=42]
public class RegalTest(){

private static Regal buecherwurm = new Regal();

public static void main(String[] args){
buecherwurm = add(new Buch("lili lala","rosalie"),"Drama");
buecherwurm.print_regal_Inhalt(){};
public String kategorie_von_Buch(Buch b){}
}

}
[/code]

Ich denke das reicht um mein folgendes Problem zu veranschaulichen.

1.) bei folgender Methode bekomme ich die Ausgabe: [Buch@60r4r6g=Drama]...das was mach stört ist die linke Seite vom "="-Operator da sollte eig. Titel,Autor vom Buch stehen.
[JAVA=42] buecherwurm.print_regal_Inhalt(){}; [/code]


2.)ich tue mich dabei schwere ein Instanz von Buch als Parameter zu uebergeben, da wuerde es mich freuen wenn mir da jemand hilft. [JAVA=42] public String kategorie_von_Buch(Buch b){} [/code]

Ich bedanke mich schon vorweg fuer eure Zeit die ihr euch zum durchlesen meiner Frage genommen habt.
 

njans

Top Contributor
Überschreibe toString von deinem Buch, dann kannst du bestimmen, was ausgegeben wird.
P.S. dein Coding Stil solltest du mal ausbessern:
- Methoden immer lowerCamelCase: print_regal_Inhalt -> printRegalInhalt
 

Streijost

Mitglied
Überschreibe toString von deinem Buch, dann kannst du bestimmen, was ausgegeben wird.
P.S. dein Coding Stil solltest du mal ausbessern:
- Methoden immer lowerCamelCase: print_regal_Inhalt -> printRegalInhalt

ok das werde ich mir merken, wegen der toString() methode ich habe sie bisher nirgends aufgerufen, deswegen weiß ich nicht in wieweit sie meine methode print_regal_inhalt ändert.
Die methode sieht bei mir so aus.
Java:
public void print_regal_inhalt(){
    System.out.println(buchregal.entrySet());
}
Wenn ich da einen Fehler mach korrigiere mich bitte.
Und wegen meiner zweiten Frage wie würde da der Methodenaufruf ausehen?
 

kaoZ

Top Contributor
Mal was Grundlegendes, wenn du "Echte" Objekte nachahmst, solltest du auch alles nachahmen
wenn du ein Regal erstellst , dann ist normalerweise nicht unendlich platz in diesem ;)

demnach solltest du :

- deinem Regal im Konstruktor direkt eine Größe zuweisen.
- bei Überlauf in eine neu erstelltes Regal einsortieren / ein neues Befüllen.
- deine Methoden der Klasse Regal auch so benennen wie die Aktionen die du durchführen willst, den
man "löscht" selten Bücher aus Regalen ;)

z.B

Wenn wir schon bei Deutsch bleiben wollen/müssen :)
Java:
public void hinzufügen(Buch b){...}
public void entfernen(Buch b){...}
public Buch herausnehmen(Buch b){...}
public Buch[] regalInhalt(){...}

ansonsten wie schon erwähnt toString der Klasse Buch überschreiben um eine Menschen lesbare Version des Titels oder whatever der deinen Vorstellungen entspricht zu erhalten.
 
Zuletzt bearbeitet:

Streijost

Mitglied
Überschreibe toString von deinem Buch, dann kannst du bestimmen, was ausgegeben wird.
P.S. dein Coding Stil solltest du mal ausbessern:
- Methoden immer lowerCamelCase: print_regal_Inhalt -> printRegalInhalt

Mal was Grundlegendes, wenn du "Echte" Objekte nachahmst, solltest du auch alles nachahmen
wenn du ein Regal erstellst , dann ist normalerweise nicht unendlich platz in diesem ;)

demnach solltest du :

- deinem Regal im Konstruktor direkt eine Größe zuweisen.
- bei Überlauf in eine neu erstelltes Regal einsortieren / ein neues Befüllen.
- deine Methoden der Klasse Regal auch so benennen wie die Aktionen die du durchführen willst, den
man "löscht" selten Bücher aus Regalen ;)

z.B

Wenn wir schon bei Deutsch bleiben wollen/müssen :)
Java:
public void hinzufügen(Buch b){...}
public void entfernen(Buch b){...}
public Buch herausnehmen(Buch b){...}
public Buch[] regalInhalt(){...}

ansonsten wie schon erwähnt toString der Klasse Buch überschreiben um eine Menschen lesbare Version des Titels oder whatever der deinen Vorstellungen entspricht zu erhalten.

Ja ich sehe ein das Regal war nicht die Beste Wahl, es ging nicht um die nachahmung eines Regal das war nur zweckmäßig um mein Problem zu verdeutlichen.

Es geht einfach um einen komplexen Datentypen dessen Klasse zwei Attributen vom typ String besitzt.
dieser k. Datentyp soll einer HashMap als Schlüssel übergeben werden und einem bestimmten Wert zugeordnet bekommen.
nun möchte ich einmal den Inhalt der HashMap Ausgaben der Form: {((Attribut1,Attribut2),String)}
Ich habe die methode toString überladen und alles funktioniert , ich habe aber noch nicht so richtig verstanden wieso.
Buch und Regal haben jeweils eine toString() Methode und ich rufe sie kein einziges mal bewusst auf.
Kannst du mir erklären wie das funktioniert ?
 

kaoZ

Top Contributor
Ich habe die methode toString überladen und alles funktioniert , ich habe aber noch nicht so richtig verstanden wieso.

Wie sieht dein Code aus wenn du sie überladen statt überschrieben hast ?

wenn du nun in deiner Hashmap<Buch,String> in der klasse buch die toString methode überschreibst , das diese dir z.B den Title und den author zurückliefert erhälst du z.B folgende ausgaben

Java:
Girls von Ipanema, Dinges Kirchens, Drama

das kommt halt immer drauf an wie du die toString Methode überschreibst , und wie du die Methode zur Ausgabe der Daten gestaltest.
 
Zuletzt bearbeitet:

Streijost

Mitglied
Wie sieht dein Code aus wenn du sie überladen statt überschrieben hast ?

wenn du nun in deiner Hashmap<Buch,String> in der klasse buch die toString methode überschreibst , das diese dir z.B den Title und den author zurückliefert erhälst du z.B folgende ausgaben

Java:
Girls von Ipanema, Dinges Kirchens, Drama

das kommt halt immer drauf an wie du die toString Methode überschreibst , und wie du die Methode zur Ausgabe der Daten gestaltest.

Ja ich hab sie überschrieben, nicht überladen hatte da was verwechselt.
[JAVA=42]
p String toString(){
return "["+buchtital+", "+autor+"]";
}
[/code]
die Ausgabe ist perfect.
Ich und meine Frage hat sich von selbst geklärt.

Ich bedanke mich bei euch.
 

kaoZ

Top Contributor
Java:
return "["+buchtital+", "+autor+"]";

gewöhn dir leerzeichen an ;) das macht das ganze doch etwas lesbarer

Java:
return "[" + buchtital + ", " + autor + "]"; // buchTitel wäre eine korrekte Variablenbezeichnung

möchtest du mal kein String ausgegeben, z.B eine ISNB Nummer ( meistens vom typ int o.ä)

kannst du dies mit

Java:
String.valueOf(Obj o);

erreichen
 
Zuletzt bearbeitet:

Streijost

Mitglied
Ok habs mir notiert.
An erster Stellen ...Schreibfehler vermeiden.
An zweiter Stelle Methodennamen lowerUpperCase
An dritter Stelle Leerzeichen machen alles übersichtlicher.

Jetzt noch eine Frage gibt es hier im Forum eine "Danke"-Funktion bzw einen Button ich finde den nicht würd mich gerne ordentlich bei euch bedanken wollen.
 

kaoZ

Top Contributor
Den gibt's erst ab 8 Beiträgen ;)
Denk auch immer daran das du Methoden / Variablen immer möglichst aussagekräftig benennst, das du und andere immer gleich siehst für was genau diese stehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
F OOP Instanz einer Klasse an eine andere weitergeben Java Basics - Anfänger-Themen 16
D Wie neue Instanz einer Klasse erstellen, von der ich nur eine andere Instanz kenne? Java Basics - Anfänger-Themen 13
G Was passiert mit eine Methode bei einer Instanz Java Basics - Anfänger-Themen 13
F Wann ist es eine Instanz und wann nicht? Java Basics - Anfänger-Themen 1
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
S Wann existiert eine Instanz (eigene Klasse) Java Basics - Anfänger-Themen 8
O zugriff auf eine Instanz Java Basics - Anfänger-Themen 8
Antoras eine Instanz von mehrere Klassen aus nutzen Java Basics - Anfänger-Themen 2
H OO-Anfänger: mehrere Klassen greifen auf eine Instanz zu Java Basics - Anfänger-Themen 9
E Eine Klasse hat eine Instanz von sich selbst. Java Basics - Anfänger-Themen 6
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
G Wie wartet man bis ein URL eine Antwort zurückgibt? Java Basics - Anfänger-Themen 5
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
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
M mit Maven eine ausführbare Jar bauen Java Basics - Anfänger-Themen 7
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
M Eine Funktion zuweisen Java Basics - Anfänger-Themen 3
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
S Eine Idee umsetzen ganz schnell!? Java Basics - Anfänger-Themen 68
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
jeff98 Wie kann man in Java eine Zeichenformation ausgeben? Java Basics - Anfänger-Themen 9
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
A Eclipse IDE - Wie bekomme ich eine ältere Version Java Basics - Anfänger-Themen 6
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
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
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
M Wie schreibe ich eine if-Verzweigung um, so dass ein Bedingungsoperator benutzt wird? Java Basics - Anfänger-Themen 9
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
M Wie richte ich eine Diagonale an Robotern in einer World ein? Java Basics - Anfänger-Themen 15
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
S Kann ich eine jar anschauen wie sie gecoded wurde? Java Basics - Anfänger-Themen 2
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben