Wie kann man Werte vom Konstruktor holen ?

IcocaI

Mitglied
Hallo

ich hab ein kleines Problem. Das Problem besteht darin, dass ich die Werte vom Konstruktor holen muss.

hier mal der Code:


Code:
package Geldautomat;

import lese.Lese;

public class Geldautomat {

	public static void main(String[] args) {
		
		Kontoverwalter verwalter = new Kontoverwalter();
		double vorrat = 500;
		int wahl;
		int ktoNr;
		double betrag;
		
		do
		{
			System.out.println("Willkommen...\n");
			System.out.println("1. abheben\n2. einzahlen\n");
			System.out.print("->");
			wahl = Lese.readInt();
			
			if(wahl == 1){
				System.out.print("Geben Sie das Konto ein :");
				ktoNr = Lese.readInt();
				System.out.print("Geben Sie den Betrag ein :");
				betrag = Lese.readDouble();
							
				if(betrag >= vorrat)
					System.out.println("Das Geld kann nicht ausgezahlt werden.\nFragen Sie Ihren Hausarzt");
				else
					verwalter.setTransfer(ktoNr, betrag);
			}
			else if(wahl == 2){
                               /*
				System.out.println("Geben Sie das Konto ein");
				ktoNr = Lese.readInt();
				System.out.println("Geben Sie den Betrag ein");
				betrag = Lese.readDouble();
				*/
			}
			else
				System.out.println("Falsche eingabe");
		}while(wahl != 0);
	}
	
}

Code:
package Geldautomat;

public class Kontoverwalter implements KontoVertrag {
	
	Konto[] ktos = {
					new Konto(1, 500), 
					new Konto(4, 15), 
					new Konto(2, 1000, 2000), 
					new Konto(3, 500, 1000)
					};
	
	
	public void setTransfer(int kto, double betrag){
		
		for(int sucher = 0; sucher < ktos.length; sucher++){
			/*if(){
				
			}*/
			
			//Kontoverwalter.this.getKonto(kto);
			//Kontoverwalter.this.setAbheben(betrag);
			System.out.println(ktos[sucher]);
			
			
		}		
	}
	
	public int getKonto(int kto) {
		
		return kto;
	}

	public void setAbheben(double betrag) {
		
	
		
	}

	public void setEinzahlen(double betrag) {
		
		
		
	}
}

Code:
package Geldautomat;

public class Konto {
	
	private int ktoNr;
	private double ktoStand;
	private double dispo;
	
	public Konto(int ktoNr, double ktoStand){
		this.ktoNr = ktoNr;
		this.ktoStand = ktoStand;
	}
	
	public Konto(int ktoNr, double ktoStand, double dispo){
		this.ktoNr = ktoNr;
		this.ktoStand = ktoStand;
		this.dispo = dispo;
	}
}


so in der Klasse Kontoverwalter wollte ich halt die einzelne Werte ansprechen, z.B. die ktoNr von Konto. Am Anfang von Geldautomat wird halt nach der Kontonummer und dem Betrag gefragt. Wenn mans eingibt, werden die Werte an die Methode setTransfer übergeben. Da hab ich mir so gedacht, dass das Programm dann die eingegebene Kontonummer mit dem aus dem Konstruktor vorhandenem Wert vergleicht also nur die ktoNr, damit der nachher weiß "aha" ich muss von diesem Konto aus geld abheben. Nur ich hab keine Ahnung wie man das realisiert ... oder gibt es da einen ganz einfacheren weg ?

ich hoffe das ist verständlich rüber gekommen
 
Moin,

Da alle Deine Variablen in Konto ja private sind, musst Du Methoden definieren, die Dir deren Inhalt zurückliefern:

Java:
package Geldautomat;

public class Konto {
	
	private int ktoNr;
	private double ktoStand;
	private double dispo;
	
	public Konto(int ktoNr, double ktoStand){
		this.ktoNr = ktoNr;
		this.ktoStand = ktoStand;
	}
	
	public Konto(int ktoNr, double ktoStand, double dispo){
		this.ktoNr = ktoNr;
		this.ktoStand = ktoStand;
		this.dispo = dispo;
	}

    public int getKtoNr(){
		return ktoNr;
    }

    public double getKtoStand(){
		return ktoStand;
    }

    public double getDispo(){
		return dispo;
    }
}

Damit kommst Du dann halt über das neu erstellte Konto-Objekt in Kontoverwaltung an die Daten.
Und in Deiner Kontoverwaltung definierst Du dann einfach noch eine Methode, die den von Dir gewünschten Vergleich macht.

Gruß,
Xan
 
Zuletzt bearbeitet:
Zurück