Von einer Klasse aus, Objekte einer anderen Klasse verändern.

martind

Neues Mitglied
Hallo zusammen

Ich habe folgendes Problem: Ich habe in bluej eine Klasse "Konto" programmiert, die neben anderen Parametern natürlich auch einen Kontostand hat. Die Aufgabe ist es nun, mit einer separaten Klasse "Ueberweisung", Überweisungen von einem Konto-Objekt (ausgangskonto) Geld auf ein anderes Konto-Objekt (empfaengerkonto) zu transferieren. Wo ich aber anstehe, ist, dass ich keine Ahnung habe wie ich von der Klasse "Ueberweisung" auf den Kontostand der Objekte der Klasse "Konto" zugreifen kann.

Weiss jemand Rat?

Der Code der Klasse "Konto" sieht wie folgt aus:
Java:
public class Konto
{
    // Der Vorname des Kontoinhabers.
    private String vorname;
    // Der Nachname des Kontoinhabers.
    private String nachname;
    //Die Kontonummer des Kontoinhabers.
    private int kontonummer;
    //Die Strasse und Hausnummer des Kontoinhabers.
    private String adresse;
    //Der Wohnort des Kontoinhabers.
    private String ort;
    //Die Postleitzahl des Kontoinhabers. String, damit die PLZ auch problemlos mit 0 beginnen kann. 
    private String plz;
    //Das Land des Kontoinhabers.
    private String land;
    //Der Betrag, der sich noch auf dem Konto befindet. "double" damit der Kontostand mit zwei Dezimailstellen
    //implementiert werden kann. 
    public double kontostand;
    //Die PIN, die der Kunde bei Kontoeröffnung wählen kann. 
    private int geheimnummer;
    //Das Kreditlimit wird hier bereits eingeführt, da es in mehreren Methoden Verwendung findet. 
    private int kreditlimit;

    /**
     * Erzeuge ein Konto, das Auskunft über den Inhaber und den Kontostand gibt. Alle Variabeln ausser
     * dem Kontostand kann man bei Erzeugung eines neuen Kontos eingeben.
     */
    public Konto(String Vorname, String Nachname, int Kontonummer, 
    String Adresse, String Ort, String PLZ, String Land, int Geheimnummer)
    {
        vorname = Vorname;
        nachname = Nachname;
        kontonummer = Kontonummer;
        adresse = Adresse;
        ort = Ort;
        plz = PLZ;
        land = Land;
        kontostand = 0.00;
        geheimnummer = Geheimnummer;
        kreditlimit = 0;
    }


    /**
     * Über die Methode "geheimnummerAendern" kann die Geheimnummer geändert werden. 
     * Dabei wird überprüft, ob die alte Geheimnummer stimmt, falls nicht kommt eine Meldung.
     * Falls sie stimmt, wird die Geheimnummer in die neue Geheimnummer geändert. 
     */
    public void geheimnummerAendern (int alteGeheimnummer, int neueGeheimnummer)
    {
        if (alteGeheimnummer == geheimnummer) {
            geheimnummer = neueGeheimnummer;
        }
        else {
            System.out.println ("Bitte geben Sie die korrekte Geheimnummer ein.");
            System.out.println();
        }
    }


    /**
     * Mit der Methode "setzeKreditlimit" ist es möglich ein Kreditlimit zu setzen, damit man das Konto
     * nicht endlos überziehen kann. Die Methode verändert die Variable "kreditlimit", welche bereits
     * generiert wurde. 
     */
    public void setzeKreditlimit (int Kreditlimit)
    {
        kreditlimit = Kreditlimit;
        }

    /**
     * Mit der Methode "einzahlen" ist es möglich Geld auf das Konto einzuzahlen. Dies hat zur
     * Folge, dass sich der Kontostand um den eingezahlten Betrag erhöht. Bei der Einzahlung wird
     * überprüft, ob der einzuzahlende Betrag positiv ist oder nicht. Falls er positiv ist, kommt eine
     * Fehlermeldung, andernfalls wird der Betrag gutgeschrieben. 
     */
    public void einzahlen (double betragEinzahlung)
    {
        if (betragEinzahlung > 0) {
            kontostand = kontostand + betragEinzahlung;
        }
        else {
            System.out.println("Bitte bezahlen Sie einen positiven Betrag ein");
            System.out.println();
        }
    }
    

    /**
     * Mit der Methode "abheben" kann man Geld vom Konto abheben. Damit dies möglich ist, muss
     * die korrekte Geheimnummer eingegeben werden und der neue Kontostand darf nicht unter die 
     * Kreditlimite fallen.
     * 
     * Mit der wenn/dann Funktion wird geprüft, ob die PIN korrekt ist und der Betrag nicht die Kredit-
     * limite überschreitet. Wenn beides nicht der Fall ist wird das Geld ausbezahlt. Falls eine der
     * beiden Bedingungen nicht erfüllt ist, erscheint eine entsprechende Fehlermeldung.
     * 
     */
    public void abheben (int PIN, double betragAuszahlung)
    {
        if ((PIN == geheimnummer) && (betragAuszahlung <= kontostand + kreditlimit)){
           kontostand = kontostand - betragAuszahlung;     
        }
        else {
        if (PIN != geheimnummer) {
            System.out.println("PIN falsch.");
            System.out.println();
        }
        else {
        if (betragAuszahlung > kontostand + kreditlimit){
            System.out.println("Kreditlimit erschöpft");
            System.out.println("maximaler Bezug " + (kontostand + kreditlimit) + " CHF");
            System.out.println();
        }
       }
       }
    }

    /**
     * Die Methode "kontoInfosAusgeben" ermöglicht es, alle relevanten Informationen in der Konsole 
     * anzuzeigen. Die funktioniert mit der System.out.println Funktion.
     */
    public void kontoInfosAusgeben()
    {
        System.out.println("#############################");
        System.out.println("Kontoinhaber:");
        System.out.println(nachname +", " + vorname);
        System.out.println(adresse);
        System.out.println(plz + " " + ort);
        System.out.println(land);
        System.out.println();
        System.out.println("Kontonummer: " + kontonummer);
        System.out.println();
        System.out.println("Kontostand: " + kontostand);
        System.out.println("Kreditlimit: " + kreditlimit);
        System.out.println("Geheimnummer: " + geheimnummer);
        System.out.println("#############################");
        System.out.println();
    }

}

Der Code der Klasse "Ueberweisung" wie folgt:
Java:
import java.util.ArrayList;

public class Ueberweisung
{
    private ArrayList kontoliste;
    
    public Ueberweisung()
    {
        kontoliste = new ArrayList();
    }
    
    public void hinzufuegenKonto(Konto neu)
    {
        kontoliste.add(neu);
    }
 

Moro

Mitglied
Also du kannst wenn du das Objekt der Klasse Konto erstellt hast erstmal normal per Punkt-Operator auf den Kontostand zugreifen. Allerdings ist es im Sinne einer vernünftigen Kapselung besser, du setzt Kontostand auch auf private und stellst Methoden zur Verfügung, die den Kontostand liefern (getKontostand() )und ändern koennen (setKontostand() ).

Wenn du beim Überweisungs-Objekt auf die Konto-Objekte zugreifen willst, musste diese zunächst erstellen, und dann als Parameter bei deiner "hinzufuegnKonto"-Methode übergeben. Da wäre es sinnvoll, weitere Methoden der Überweisungsklasse hinzuzufügen, mit der du die Überweisung dann ausführen kannst. Sowas wie starteUberweisung(). Das heißt du greifst nur indirekt auf die Konto-Objekte über dein Überweisungs-Objekt zu, nämlich in dem du die Überweisung dann startest.

An diesem Vorgehen wüsste ich spontan nichts was man daran ändern sollte. Musst du mit Collections arbeiten? Ansosten würden ja auch einfach zwei Variablen des Typs Konto reichen die dann deine beiden Konten referenzieren. In jedem Fall solltest du aber klar machen, dass deine ArrayList Objekte vom Typ Konto hält damit du auch auf die Methoden der Konto-Objekte in deiner Überweisungs-Klasse zugreifen kannst (das auch zu deiner Frage wie du auf die Konten zugreifen sollst).

Java:
ArrayList<Konto> eineKontoliste = new ArrayList<Konto>();

Weitere Frage die man sich stellen kann: Gibt es eine Überweisung ohne Konten? Du könntest die beiden Konten um die es geht direkt im Konstruktor des Überweisungs-Objektes übergeben. Nur so meine Gedanken dazu ...

Also zu deinen Primär-Fragen nochmal:

Du musst die Klasse Überweisung weiter ausbauen ( du sprichst mit dem Überweisungs-Objekt, und das Überweisungs-Objekt intern mit den Konto-Objekten um die es geht). Was du bis jetzt machen kannst:

*Konto-Objekte erstellen
*Überweisungs-Objekte erstellen
*Konto- Objekte als Parameter dem Überweisungsobjekt übergeben.

Was du aber noch können musst (Kontostände überprüfen, Überweisung ausführen, Kontostände aktualisieren) machst du aus der Überweisungs-Klasse heraus und stellst für die einzelnen Aktionen Methoden in deiner Konto-Klasse bereit.
 
Zuletzt bearbeitet:

Gucky

Top Contributor
Das ist die Basis von OOP. Wenn du noch Fragen hast, so bemühe bitte zuerst Google, bevor du hier fragst. Dazu gibt es 1.000.000 Tutorials im Internet und nun gibt es 1.000.001.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
F Objekte einer Klasse verwalten Java Basics - Anfänger-Themen 10
M Erste Schritte mehrere Objekte aus einer Klasse Java Basics - Anfänger-Themen 4
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
S OOP Foreach für Objekte einer Klasse? Java Basics - Anfänger-Themen 3
S Mehrere Objekte einer Klasse automatisch erzeugen Java Basics - Anfänger-Themen 15
B Objekte aus einer anderen Klasse(in der sich weitere Klassen befinden) erzeugen Java Basics - Anfänger-Themen 24
F Aller Objekte einer Klasse Java Basics - Anfänger-Themen 9
D Erste Schritte Viele Objekte einer Klasse "verwalten" Java Basics - Anfänger-Themen 17
J Klassen Objekte einer Klasse Java Basics - Anfänger-Themen 13
K in Konstruktor neue Objekte einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
S OOP kann ich von einer Klasse aus auf andere Objekte zugreifen? Java Basics - Anfänger-Themen 7
T Objekte einer Klasse einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
K Objekte innerhalb einer Klasse Java Basics - Anfänger-Themen 2
G auf Objekte in einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
N Verständnisproblem: Mehrere Objekte einer Klasse erstellen Java Basics - Anfänger-Themen 2
P Zugriff auf Objekte einer anderen Klasse Java Basics - Anfänger-Themen 1
A auf objekte in einer bereits bestehenden klasse zugreifen Java Basics - Anfänger-Themen 2
B objekte einer klasse. Java Basics - Anfänger-Themen 14
L 2 Objekte einer Klasse Java Basics - Anfänger-Themen 8
C Objekte einer Klasse wiederfinden Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
S Instanzvariablen vom Typ einer Klasse definieren Java Basics - Anfänger-Themen 12
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
I Instanz einer anderen Klasse zurückgeben Java Basics - Anfänger-Themen 34
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
T Klassen Klasse in einer anderen Klasse verwenden. Java Basics - Anfänger-Themen 3
J Die Y Koordinate von einer anderen Klasse auch verändern Java Basics - Anfänger-Themen 1
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
F OOP Instanz einer Klasse an eine andere weitergeben Java Basics - Anfänger-Themen 16
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Arraylist in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 11
D ArrayList in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben