Moin,
ich hatte den Fehler schon relativ oft, aber nie richtig verstanden wie ich ihn Lösen kann.
Ich hoffe einfach das ich mit eurer Hilfe endlich verstehe wie genau ich das Problem angehen muss und dann lösen kann.
Hier einmal mein Code:
In der letzten Methode sagt er mir bei Sparkonto.einzahlung(sparbetrag); den Static Fehler bei einzahlung.
Die Klasse Sparkonto:
Vielen Dank
Grüße LeFlair
ich hatte den Fehler schon relativ oft, aber nie richtig verstanden wie ich ihn Lösen kann.
Ich hoffe einfach das ich mit eurer Hilfe endlich verstehe wie genau ich das Problem angehen muss und dann lösen kann.
Hier einmal mein Code:
In der letzten Methode sagt er mir bei Sparkonto.einzahlung(sparbetrag); den Static Fehler bei einzahlung.
Java:
import java.util.Calendar;
import java.util.ArrayList;
/**
* Beschreiben Sie hier die Klasse Konto.
*
* @author ()
* @version (2.0)
*/
//Klasse
public class Konto
{
//nummer bleibt erhalten und zählt hoch bei Konstruktoraufruf
private static int nummer = 101000;
//Kontonummer
private int kontonummer;
//Name des Inhabers
private Inhaber inhaber;
//Zugriffs Variable für Sparkonto
private Sparkonto sparbetrag;
//Kontostand
private int kontostand;
private String datum;
private Inhaber nutzer;
private ArrayList<String> buchungen;
//Kontoeröffnung
public Konto(Inhaber kunde, String ttmmjj)
{
Kalender(ttmmjj);
inhaber = kunde;
kontostand = 0;
kontonummer = nummer;
nummer += 1;
buchungen = new ArrayList<String>();
buchungen.add(datum + "\nKontoeröffnung");
}
//Kontoeröffnung mit Einzahlung
public Konto(int einzahlung, Inhaber kunde, String ttmmjj)
{
if(einzahlung < 0) {
throw new RuntimeException("Betrag muss Positiv sein!");
}
else {
Kalender(ttmmjj);
inhaber = kunde;
kontostand = 0;
kontonummer = nummer;
nummer += 1;
kontostand += einzahlung;
buchungen = new ArrayList<String>();
buchungen.add(datum + "\nKontoeröffnung mit Einzahlung von: " + einzahlung + "€");
}
}
//Kontoeröffnung (geworben) mit Einzahlung
public Konto(int einzahlung, Inhaber kunde, Konto begünstigter, String ttmmjj)
{
Kalender(ttmmjj);
inhaber = kunde;
kontostand = 0;
kontonummer = nummer;
nummer += 1;
begünstigter.einzahlen(60, ttmmjj);
kontostand += einzahlung;
buchungen = new ArrayList<String>();
buchungen.add(datum + "\nKontoeröffnung mit Einzahlung von: " + einzahlung + "€");
}
//Holt sich das aktuelle Datum
private void Kalender(String ttmmjj)
{
datum = ttmmjj;
//String datum = "";
//Calendar heute = Calendar.getInstance();
//int aktJahr = heute.get(Calendar.YEAR);
//int aktMonat = heute.get(Calendar.MONTH)+1;
//int aktTag = heute.get(Calendar.DAY_OF_MONTH);
//this.datum = (aktTag + "." + aktMonat + "." + aktJahr);
}
//Testen ob datum funktioniert
public void datum()
{
System.out.println();
System.out.println(datum);
}
/**
*Um Kontoauszüge ab einem bestimmten Datum zu bekommen, geben sie ein Datum in folgendem Format ein: "t.m.jj"
*Für alle Kontoauszüge geben Sie "" ein.
**/
public void Kontoauszug(String suchdatum)
{
int index = 0;
if(suchdatum == "") {
System.out.println("Hier soll er sich den Inhbaer holen");
System.out.println("Konto-Nr: " + nummer);
while(index < buchungen.size()) {
String alles = buchungen.get(index);
System.out.println(alles);
System.out.println("-------------------------------");
index++;
}
}
else {
System.out.println("Hier soll er sich den Inhbaer holen");
System.out.println("Konto-Nr: " + nummer);
boolean gefunden = false;
while(index < buchungen.size() && !gefunden) {
String datum = buchungen.get(index);
if(datum.contains(suchdatum)) {
gefunden = true;
}
else {
index++;
}
}
if(index < buchungen.size()) {
while(index < buchungen.size()) {
String allesAbAatum = buchungen.get(index);
System.out.println(allesAbAatum);
System.out.println("-------------------------------");
index++;
}
}
else {
System.out.println("Sie haben am " + suchdatum + " und auch danach, keine Buchungen getätigt!");
}
}
System.out.println("");
System.out.println("Ihr aktueller Kontostand beträgt: " + kontostand + "€");
}
//Holt sich die Informationen aus der Klasse Inhaber
public Inhaber getInhaber()
{
return inhaber;
}
//Methode Kontostand abfragen
public int getKontostand()
{
return kontostand;
}
/**
*Welchen Betrag möchten Sie einzahlen?
**/
public void einzahlen(int betrag, String ttmmjj)
{
if(betrag > 0) {
Kalender(ttmmjj);
kontostand += betrag;
buchungen.add(datum + "\nEinzahlung: " + betrag + "€");
}
else {
System.out.println("Betrag muss Positiv sein!");
}
}
/**
*Welchen Betrag möchten Sie abheben?
**/
public void abheben(int betrag, String ttmmjj)
{
if(betrag > 0) {
Kalender(ttmmjj);
kontostand -= betrag;
buchungen.add(datum + "\nAuszahlung: -" + betrag + "€");
}
else {
System.out.println("Betrag muss Positiv sein!");
}
}
/**
*Bitte tragen Sie das Konto des Empfängers und den Betrag ein, den Sie überweisen wollen!
**/
public void überweisen(Konto empfänger, int betrag, String ttmmjj)
{
if(betrag > 0) {
abheben(betrag, ttmmjj);
empfänger.einzahlen(betrag, ttmmjj);
}
else {
System.out.println("Betrag muss Positiv sein!");
}
}
/**
*Welchen Betrag möchten Sie auf Ihr Sparkonto überweisen?
**/
public void sparen(int sparbetrag, String ttmmjj)
{
if(sparbetrag > 0 && sparbetrag < kontostand) {
Kalender(ttmmjj);
buchungen.add(datum + "\nÜberweisung auf Sparkonto: -" + sparbetrag + "€");
kontostand -= sparbetrag;
Sparkonto.einzahlung(sparbetrag);
}
else {
System.out.println("Kontodeckung nicht ausreichend, oder sie haben einen negativen Betrag eingegeben!");
}
}
}
Die Klasse Sparkonto:
Java:
public class Sparkonto
{
private int Zinssatz;
private int Zinszahlung;
private int Sparzahlung;
private int kontostand;
public Sparkonto()
{
kontostand = 0;
Zinssatz = 6;
}
public void einzahlung(int sparbetrag)
{
kontostand += sparbetrag;
}
}
Vielen Dank
Grüße LeFlair