Klassen einfacher Fehler in einem Java Programm.

?

--->

Mitglied
(Klassen) einfacher Fehler in einem Java Programm.

Sehr geehrte Community,
Ich habe vor kurze mit der Java Programmierung begonnen
und mir ein Grundlagenbuch gekauft. :rtfm:
Mithilfe dieses Buches habe ich mehrere einfache Programme pogrammiert.

In einem dieser Programme befinden sich ein Fehler der vom Editor nicht angezeigt wierd.
Es erscheint nur eine, für mich unverständliche Fehlermeldung.
Ich habe die Fehlermeldung gekürzt damit sie nicht so lang wierd.
Die letzten Zeilen "at uebung07.Girokonto.auszahlen(Girokonto.java:23)"
wiederholden sich sehr oft.
Noch viel Öfter als in der von mir angebenen Fehlermeldung.

Code:
Exception in thread "main" java.lang.StackOverflowError
	at uebung07.Konto.getKontostand(Konto.java:13)
	at uebung07.Girokonto.auszahlen(Girokonto.java:20)
	at uebung07.Girokonto.auszahlen(Girokonto.java:23)
	at uebung07.Girokonto.auszahlen(Girokonto.java:23)
	at uebung07.Girokonto.auszahlen(Girokonto.java:23)
	at uebung07.Girokonto.auszahlen(Girokonto.java:23)
	at uebung07.Girokonto.auszahlen(Girokonto.java:23)

Das Programm selbst besteht aus 3 Klassen.
Die Zweite Klasse "Girokonto" wierd von den ersten Klasse "Konto" abgeleitet.
Es werden Konstruktoren, Atribute und Methoden ergänst.
Die Dritte Klasse "GirokontoTest" testet die Klasse "Girokonto".
Über die Methoden in "Girokonto" wierd das Atribute Kontostand verändert.
Ich habe lange nach dem Fehler gesucht und ihn nicht gefunden. :noe:
Ich glaube das der Fehler mit der Schleife zusammenhängt.
Aber ich bin mir nicht sicher.
[WR]
Wo ist der Fehler?
[/WR]

Hier ist das Ausführende Programm "GirokontoTest" :

Java:
package uebung07;

public class GirokontoTest {
    public static void main(String args[]) {
	Girokonto gk = new Girokonto("0000000001", 10000.0, 1000.0);
	gk.auszahlen(11000.0);
	System.out.println("Kontostand: " + gk.getKontostand());
	gk.einzahlen(11000.0);
	gk.auszahlen(11001.0);
	System.out.println("Kontostand: " + gk.getKontostand());
    }
}

Das ist die zweite Klasse "Girokonto" :

Java:
package uebung07;

public class Girokonto extends Konto {
    double limit;

    Girokonto(String Kontonummer, double Kontostand, double Kreditlimit) {
	super(Kontonummer, Kontostand);
	limit = Kreditlimit;
    }

    double getLimit() {
	return limit;
    }

    void setLimit(double l) {
	limit = l;
    }

    void auszahlen(double auszahlung) {
	if ((getKontostand() - auszahlung) >= limit * (-1)) {
	    System.out.println("Fehler: Kreditlimit überschritten!");
	} else {
	    auszahlen(auszahlung);
	}
    }

}

Die Superklasse "Konto" von der die Subklasse "Kontotest" abgeleitet wierd:


Java:
package uebung07;

public class Konto {
    private String kontonummer;
    private double kontostand;

    Konto(String Kontonummer, double Kontostand) {
	this.kontonummer = Kontonummer;
	this.kontostand = Kontostand;
    }

    double getKontostand() {
	return kontostand;
    }

    String getKontonummer() {
	return kontonummer;
    }

    void einzahlen(double einzahlung) {
	kontostand += einzahlung;
    }

    void auszahlen(double auszahlung) {
	kontostand -= auszahlung;
    }
}

Die Ausgabe des Programms sollte so ausehen:

[DUKE]Kontostand: -1000.0
Fehler: Kreditlimit überschritten!
Kontostand: 10000.0[/DUKE]

Ich habe zwei Fragen: :noe:

  1. Wo ist der Fehler? / Wo sind die Fehler?
  2. Was bedeutet die Fehlermaeldung?

Warscheinlich ist mein Fehler ein total blöder. :noe: :(
Trotzdem wäre nett wen ihr wenigstens einige meiner Fragn beantworten könnt.:toll: :applaus:
Es würde mir wirklich sehr Helfen. :bloed:
Wenn ihr noch weiter Tipps für mich habt, teilt sie mir ruhig mit. :idea:

[DUKE]euer "--->"[/DUKE]
 
Zuletzt bearbeitet:
A

Adelhorst

Mitglied
Servus
Java:
Exception in thread "main" java.lang.StackOverflowError
	at uebung07.Konto.getKontostand(Konto.java:13)
	at uebung07.Girokonto.auszahlen(Girokonto.java:20)
Tip: Bei solchen Fehlermeldungen sind mestens die obersten Zwei Zeilen interessant. Die oberste Zeile zeigt immer den Grund auf ("StackOverflow") und die zweit- oder dritt-oberste immer den Ort wo abgebrochen worden ist.

Hier ist der Fehler
Java:
    void auszahlen(double auszahlung) {
    if ((getKontostand() - auszahlung) >= limit * (-1)) {
        System.out.println("Fehler: Kreditlimit überschritten!");
    } else {
        auszahlen(auszahlung);    '<= MARKE, müsste wohl eher "super.auszahlen(auszahlung);" lauten
    }
    }
In der markierten Zeile rufst du ständig (rekursiv) immer wieder die Methode 'auszahlen' auf und das erzeugt einen Überlauf im Speicher, sprich StackOverflow.
 
Zuletzt bearbeitet:
?

--->

Mitglied
Danke,
habe den Fehler gefunden und behoben. :bloed: :idea: :toll: :applaus:
Außerdem werde ich Fehlermeldungen jetzt viel besser verstehen.
[DUKE]Aber eine Frage Noch:
Muss ich immer .super angeben,
wenn ich eine Methode von der Subklasse in der Supperklasse aufrufen möchte?[/DUKE]

[DUKE]"--->"[/DUKE]
 
A

Adelhorst

Mitglied
Hallo.
Sofern es gleichnamige Methoden in Super- und Child-Klasse gibt wird immer die Child-Methode abgearbeitet.
 
Tobse

Tobse

Top Contributor
Danke,
habe den Fehler gefunden und behoben. :bloed: :idea: :toll: :applaus:
Außerdem werde ich Fehlermeldungen jetzt viel besser verstehen.
[DUKE]Aber eine Frage Noch:
Muss ich immer .super angeben,
wenn ich eine Methode von der Subklasse in der Supperklasse aufrufen möchte?[/DUKE]

[DUKE]"--->"[/DUKE]

Wie Aderhorst schon sagte: Wenn es in der Super- und in der Supklasse eine Methode mit gleichem Namen befindet wird ohne immer die Methode der Subklasse aufgerufen.

Es empfiehlt sich der Verständlichkeit halber aber, immer
Code:
super
zu schreiben auch wenn es nicht wirklich nötig ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Methoden Einfacher SekundenTimer/Stopuhr in Java Java Basics - Anfänger-Themen 2
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
H wie mehrere variablen in einfacher for-schleife? Java Basics - Anfänger-Themen 2
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
V Einfacher vergleich von Arrays geht schief Java Basics - Anfänger-Themen 2
K Seltsames Ergebnis in Netbeans bei einfacher Multiplikation Java Basics - Anfänger-Themen 5
O Ein einfacher Chatbot (simuliert chat) Java Basics - Anfänger-Themen 7
R Einfacher Regex Java Basics - Anfänger-Themen 3
L Einfacher Methodenaufruf vs. Objekt Java Basics - Anfänger-Themen 4
K Einfacher random namen weitergeben Java Basics - Anfänger-Themen 4
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Einfacher Editor, Einfache Handelsanweisungen Java Basics - Anfänger-Themen 2
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
M Einfacher Timer ;) Java Basics - Anfänger-Themen 15
M Einfacher Swing Wizard Java Basics - Anfänger-Themen 3
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
P falsches ergebnis bei einfacher berechnung Java Basics - Anfänger-Themen 3
M Einfacher Fenster-Ablauf Java Basics - Anfänger-Themen 5
M Gittermuster mit Stringbuilder und einfacher Schleife erstellen Java Basics - Anfänger-Themen 19
T Collections Werte aus einer HashMap auslesen, oder gehts auch einfacher ? Java Basics - Anfänger-Themen 6
D Code einfacher,eleganter programmieren Java Basics - Anfänger-Themen 24
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
C einfacher Link zu *.html Datei möglich? Java Basics - Anfänger-Themen 4
Hindi93 Einfacher Code funktioniert nicht... Java Basics - Anfänger-Themen 6
P Einfacher Rechner Java Basics - Anfänger-Themen 2
T Einfacher Kalender Java Basics - Anfänger-Themen 17
B Frage zu einfacher Rechnung Java Basics - Anfänger-Themen 3
B Hilfe bei einfacher Funktion - Possible loss of precision Java Basics - Anfänger-Themen 2
G Einfacher Anfang mit Hibernate Java Basics - Anfänger-Themen 4
M ein einfacher button.. ich verzweifel...... Java Basics - Anfänger-Themen 41
F Von int zu double bei einfacher Rechnung Java Basics - Anfänger-Themen 2
C Einfacher Installer Java Basics - Anfänger-Themen 2
Chucky Einfacher Taschenrechner Verbesserungsvorschläge Java Basics - Anfänger-Themen 13
G Problem mit einfacher For-Schleife und Double Wert Java Basics - Anfänger-Themen 4
D Probleme bei einfacher Rechnung Java Basics - Anfänger-Themen 3
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 1
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
R Ich sehe meinen fehler nicht Java Basics - Anfänger-Themen 8
Johannes_ece Fehler: Application Terminated (TypeError): var$0.$moveToolTo is not a function Java Basics - Anfänger-Themen 4
GermanPie Fehler in Putty (kein Hauptmanifestattribut, in jar) Java Basics - Anfänger-Themen 4
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
P Methoden aufrufen - Fehler Java Basics - Anfänger-Themen 20
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
B if Clause Fehler Java Basics - Anfänger-Themen 2
G Fibonacci Zahlenreihe Fehler Java Basics - Anfänger-Themen 4
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
B Fehler, aber ich weiß nicht warum Java Basics - Anfänger-Themen 3
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
J Fehler im Code, aber ich weiß nicht wieso! Java Basics - Anfänger-Themen 6
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
N Fehler bei JUnit Test Java Basics - Anfänger-Themen 5
C Projekte in 2 versch. Arbeitsbereichen: auf ein Projekt verweisen (ohne Fehler zu bekommen) Java Basics - Anfänger-Themen 8
R Java SQL Fehler! Java Basics - Anfänger-Themen 4
L non-static Fehler Java Basics - Anfänger-Themen 16
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
C Fehler bei der Compilierung Java Basics - Anfänger-Themen 1
T Mein Programm hat Fehler Java Basics - Anfänger-Themen 4
S Warum dieser Fehler? Java Basics - Anfänger-Themen 1
B Fehler bei Ausführung Java Basics - Anfänger-Themen 5
Kirby.exe Fehler beim Ausgeben Java Basics - Anfänger-Themen 2
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
L Wo ist der Fehler? Java Basics - Anfänger-Themen 87
J Fehler in Programm: Index -1 out of bounds for length 0 Java Basics - Anfänger-Themen 5
M JOptionPane Fehler bei "Abbrechen" des Fensters Java Basics - Anfänger-Themen 10
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
W Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
G Palindromtest mit Angabe WO der Fehler ist Java Basics - Anfänger-Themen 2
J Wo ist der Fehler im Programmcode? Java Basics - Anfänger-Themen 7
J Fehler den ich nicht kapiere Java Basics - Anfänger-Themen 9
H "AWT-EventQueue-0" Fehler Java Basics - Anfänger-Themen 3
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
C Fehler getMaxOf Java Basics - Anfänger-Themen 4
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
M in Tik Tak Toe "KI" Fehler Java Basics - Anfänger-Themen 2
F ClassCastException Fehler bei Bounds Java Basics - Anfänger-Themen 3
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
der_Schokomuffin Fehler bei Zufallsgeneration von Zahlen Java Basics - Anfänger-Themen 7
H Frage zu fehler Java Basics - Anfänger-Themen 24
F Swing - Fehler - Paint Methode Java Basics - Anfänger-Themen 7
C Überprüfen eines Queltextes auf Syntax-Fehler und Laufzeitfehler Java Basics - Anfänger-Themen 2
M java.util.scanner Fehler Java Basics - Anfänger-Themen 5
F Warum erhalte ich diese Fehler bei der Einbindung von SQLite JDBC in Eclipse? Java Basics - Anfänger-Themen 1
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
F Type safety: A generic array of.. Fehler Java Basics - Anfänger-Themen 3
K Fehler beim Programmieren von TicTacToe Java Basics - Anfänger-Themen 12
S if_else Fehler Java Basics - Anfänger-Themen 9
P Fehler: Hauptklasse [Klassenname] konnte nicht gefunden oder gelad Java Basics - Anfänger-Themen 4
L Fehler beim laden eines Icons Java Basics - Anfänger-Themen 3
Z Montageberechnungs programm, finde leider den Fehler nicht Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben