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 in einer extra Klasse folgende Funktion ausführen:
Java:
import java.io.*;
import java.util.*;
public class speichern {
FileWriter writer;
profil spieler = new profil();
public void saveKontostand() {
try {
writer = new FileWriter("kontostand.txt");
writer.write(Integer.toString(spieler.getKontostand()));
writer.close();
} catch(Exception e) {
System.out.println(" Fehler beim Speichern von 'Kontostand'");
}
}
}
Aber irgendwie klappt es nicht. Es zeigt keinen Error etc. an.
Denke, dass ich die Methode irgendwie falsch eingestellt habe im Bezug auf "void" oder so?
Kenne mich damit noch nicht so gut aus und finde auch bei Google nichts, was einfach erklärt wird. Will einfach nur in dieser Klasse diese Funktion ausführen lassen, wenn ich in der Startklasse save.saveKontostand(); schreibe.
Ich nehme an du willst den Kontostand von einem Profil speichern. Dann übergib der Methode saveKontostand das gewünschte Profil Objekt als Parameter.
Was du machst ist neues Profil Objekt erstellen, mit welchem nichts passiert und davon schreibst du den Kontostand raus.
Also in der txt-Datei "kontostand.txt" soll eben der aktuelle Kontostand geschrieben werden, sobald der User eben in der Mainmethode den String menuWahl auf 0 setzt. Wird der String auf 0 gesetzt, dann soll "save.saveKontostand()" ausgeführt werden. Bevor ich speichere habe ich den Kontostand immer auf 10.000 gesetzt, jedoch bleibt dann nach dem speichern der Kontostand auf 0 und auch innerhalb der Textdatei tut sich nichts und der Kontostand steht auf 0
Das liegt daran dass du nicht das "Profile"-Objekt aus deiner Startklasse benutzt sondern ein neues Profile-Objekt in deiner speichern Klasse erstellst.
Lösungsweg hat @Joose ja bereits angedeutet.
Ich nehme an du willst den Kontostand von einem Profil speichern. Dann übergib der Methode saveKontostand das gewünschte Profil Objekt als Parameter.
Was du machst ist neues Profil Objekt erstellen, mit welchem nichts passiert und davon schreibst du den Kontostand raus.
Das liegt daran dass du nicht das "Profile"-Objekt aus deiner Startklasse benutzt sondern ein neues Profile-Objekt in deiner speichern Klasse erstellst.
Lösungsweg hat @Joose ja bereits angedeutet.
Hm, ich verstehe das irgendwie nicht bzw. verstehe einfach nicht wie ich das in dieser Situation nutzen soll... muss ich nun was in das "Profil" schreiben oder in die "speichern" Klasse?
Um das nochmal zu verstehen: die "speichern-Klasse" muss auf die bestehende "profil-Klasse" zugreifen, auf welche auch die Mainmethode Zugriff hat - aber Main hat ja schon das Profil "spieler"? Ich bin gerade sehr verwirrt..
und der Inhalt bei der speichern-Methode ist ja auch nicht nur ein String...
Hier nochmal der Code:
Java:
import java.io.*;
import java.util.*;
public class speichern {
FileWriter writer;
public void saveKontostand(sk sk) {
try {
writer = new FileWriter("kontostand.txt");
writer.write(Integer.toString(spieler.getKontostand()));
writer.close();
} catch(Exception e) {
System.out.println(" Fehler beim Speichern von 'Kontostand'");
}
}
}
Und von der Profilklasse:
Java:
public class profil {
// Anfang Attribute
private int Kontostand;
private String Nachname;
private int Alter;
private String neu;
private String Vorname;
// Ende Attribute
// Anfang Methoden
public int getKontostand() {
return Kontostand;
}
public void setKontostand(int Kontostand) {
this.Kontostand = Kontostand;
}
Und in der Startklasse steht:
Java:
profil spieler = new profil();
Wo muss ich jetzt genau was hinzufügen?
Bin total durcheinander gerade...