Wert einer Variable einer anderen Klasse übegeben

florian81

Grünschnabel
Hallo,
ich hab grade ein kleines Problem und hoffe ihr könnt mir helfen.

Ich habe eine public class a und eine public class b.

In der public class a habe ich eine Methode, "public void überweisung(double über)".
Innerhalb dieser Methode wird eine Variable "über" mit einer zahl gefüllt.

Nun möchte ich den inhalt von "über" in eine Methode "public void sparen(double spar)", der Klasse b übergeben. Aber irgendwie funktioniert das nicht :-(

Vieleicht könnt ihr mir weiterhelfen.

gruß flo

edit:
die beiden Methoden MÜSSEN genauso aussehen wie ich sie beschrieben habe.
Also "public static void main(String[] args) " geht leider nicht, dann wärs auch einfach.
 
Zuletzt bearbeitet:
import java.text.DecimalFormat;

public class Giro
{
//Eigenschaften
private String name;
private String vorname;
private int kontonummer;
private double kontostand;
private double über;


//Konstruktor
public Giro(String name, String vorname, int kontonummer, double kontostand)
{
this.name = name;
this.vorname = vorname;
this.kontonummer = kontonummer;
this.kontostand = kontostand;
}


//Methoden
public String daten()
{
DecimalFormat df = new DecimalFormat ("0.00");
String text =("************************************************\n" +
" Daten Girokonto\n" +
"Vorname: "+vorname+"\n" +
"Name: "+name+"\n" +
"Kontonummer: "+kontonummer+"\n"+
"Kontostand: "+df.format(kontostand)+"€\n" +
"************************************************\n\n");
return text;
}

public void einzahlen(double einzahl)
{
DecimalFormat df = new DecimalFormat("00.00");
kontostand = kontostand + einzahl;
System.out.println("**********************************************\n" +
"Es wurden "+df.format(einzahl)+"€ auf das Girokonto eingezahlt.");

if(kontostand >1000)
{
über = kontostand -1000;
System.out.println("Maximalguthaben von 1000€ wurde um "+df.format(über)+"€ überschritten");
}
}
public void überweisung(double über)
{

}

In der Klasse Giro soll alles was beim einzahlen die 1000€ Grenze überschreitet in eine Variable "über gepackt werden. diese dann mithilfe der Methode "überweisung in folgende Klasse übergeben werden.
Dort dann in die Methode sparen. So dass ich damit dann da weiterarbeiten kann, bzw. es dort zur weiteren berechnung verwenden kann.

import java.text.DecimalFormat;

public class Sparbuch
{
private String name;
private String vorname;
private int kontonummer;
private double kapital;
private double über;


//Kostruktor
public Sparbuch(String name, String vorname, int kontonummer, double kapital)
{
this.name = name;
this.vorname = vorname;
this.kontonummer = kontonummer;
this.kapital = kapital;
}

public String sparbuchdaten()
{
DecimalFormat df = new DecimalFormat ("0.00");
String text =("\n**********************************************\n" +
" Daten Sparbuch\n" +
"Vorname: "+vorname+"\n" +
"Name: "+name+"\n" +
"Kontonummer: "+kontonummer+"\n"+
"Kapital: "+df.format(kapital)+"€");
return text;
}

public void sparen(double spar)
{

}
}


Die dritte Klasse führt dann alles aus. Zu sehen ist die Einzahlung von 1100€. Und die 100€ die zu viel eingezahlt wurden sollen in die Klasse Sparbuch übergeben werden.

public class Giro_anwenden
{

public static void main(String[] args)
{
Giro flo = new Giro("...","Florian",1234,0);
Sparbuch peter = new Sparbuch("...","Peter",5678,0);
System.out.println(flo.daten());
System.out.println(peter.sparbuchdaten());
flo.einzahlen(1100);
System.out.println(flo.daten());
System.out.println(peter.sparbuchdaten());

}


}
 
Zuletzt bearbeitet:
Also:

1. Ist das ein ganz unschöne bzw. unsauberer Code. Hat eig. weniger mit Objektorientierung zu tun. Naja egal.

2. Bei 1. liegt dein Problem. Dadurch das dir die Objekt orientierung fehlt funktioniert das nicht um dein Problem zu lösen würde ich eine dritte Klasse kreieren mit dem Namen Bank und der Funktion.
Deine Überweisung weiß doch gar nicht an wen. Das sollte als Parameter übergen werden und dann über die Bank, die schon Im Konstruktor mit gegeben wird gehandelt werden. So wärs ja im realen Leben auch. Dieses System nennt man Abstraktion.

Also mein Tipp: Einfach nen Konzept vorher machen. Sich das ganze mal im echten Leben angucken, dann ein UML diagramm anfertigen bzw. sich mal gedanken dazu machen: Wie kommunizieren die einzelnen Objekte untereinander. Welche Objekte brauch ich.

Hoofe die Tipss helfen dir. Knan dir gerade leider keinen Code zusammenbasteln, da ich auffer arbeit hocke;)

MfG
Reilif, der Bibliothekar
 
Schreibe deinen Code doch bitte in code-tags (siehe meine Sig), so ist es absolut unleserlich.

@Reilif, Code basteln und fertig geben bringt den Fragesteller auch nicht unbedingt weiter, ausser das die Hausaufgaben fertig sind ;)
 
War mir schon klar. Hab ihm ja auch nur ein paar Tipps zum OOP gegeben:D

habe viele Mitkommunitonen denen es auch so ging. Das reindenekn ans Objektorientierte ist die größte Hürde. Wenn mans einmal kann läufts.

Aber du stimmst mir doch wohl zu das das nicht "sauber OOP" ist oder?
 
Ich weigere mich das anzuschauen solange es nicht in code-tags steht ^^
:offtopic
Das es am Anfang schwierig ist, sich in OOP reinzudenken, weiss ich ;) Aber mir hats kopieren auch nie was gebracht, erst das immer wieder machen von neuen Aufgaben bringt einem dann irgendwann das Verstaendnis :)
 
Hey,


ist das nur ein Fehler oder hast du Umlaute als Variablenname?
"über" ?

mfg
bo
 
Zurück