Wahrscheinlich ganz einfaches Problem, aber unverständlich!

  • Themenstarter Themenstarter Noob123
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
N

Noob123

Gast
Hallo Java- Freunde!
Habe ein Problem mit meinem kleinen KontoProgramm:

Ich will die 1. Option als Methode machen und private deklarieren, aber er sieht die Variable in der Klasse nicht mehr, wenn ich die Methode schreibe, dabei ist sie doch da!??

Code:
import java.io.*;

class Konto{
	private int saldoEuro, saldoCent, kontoNr;
	private String name;
	
	void kontoAnlegen(BufferedReader input, int ktoZaehler) throws IOException{
		System.out.println("Bitte geben Sie Ihren Namen ein:");
		this.name = input.readLine();
		this.kontoNr = ktoZaehler;
		System.out.println("Vielen Dank, "+this.name+"! Ihre Konto-Nummer ist "+this.kontoNr+".");
	}
	
	void printSaldo(){
		if(this.saldoCent<10){
			System.out.println("\nKonto Nr: "+this.kontoNr+"\nKonto-Inhaber: "+this.name+"\nSaldo: "+this.saldoEuro+",0"+this.saldoCent+" Euro\n");
		}
		else System.out.println("\nKonto Nr: "+this.kontoNr+"\nKonto-Inhaber: "+this.name+"\nSaldo: "+this.saldoEuro+","+this.saldoCent+" Euro\n");
	}
	void einzahlen(int betragEuro, int betragCent){
		this.saldoEuro += betragEuro;
		this.saldoCent += betragCent;
	}
	void auszahlen(int betragEuro, int betragCent){
		if (this.saldoEuro > betragEuro || this.saldoEuro==betragEuro && this.saldoCent>=betragCent){
			this.saldoEuro -= betragEuro;
			this.saldoCent -= betragCent;
			System.out.println("Bitte entnehmen Sie nun das Geld aus dem CD-ROM-Laufwerk \n");
		}
		else System.out.println("Ihr Guthaben ist zu niedrig, Dispo-Kredite kriegen Sie bei uns nicht!!!\n");
	}
}

class KontoFuehrung3{
	
	KontoFuehrung3() throws IOException{
		Konto konto1 = null;
		Konto konto2 = null;
		Konto konto3 = null;
		
		int kzaehler = 0, eingabe=0;
		
		int kNrEinzahlung, euroEinzahlung, centEinzahlung;
		int kNrAuszahlung, euroAuszahlung, centAuszahlung;
		
		BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
		
		while (eingabe!=5){
			System.out.println("\n          - KONTOFUEHRUNG -\n");
			System.out.println("Hallo! Bitte waehlen Sie eine der folgenden Optionen:\n");
			System.out.println("-1- Konto anlegen");
			System.out.println("-2- Ausgabe aller Kontosalden");
			System.out.println("-3- Einzahlen auf Ihr Konto");
			System.out.println("-4- Auszahlen von Ihrem Konto");
			System.out.println("-5- Beenden \n");
		
			eingabe = Integer.parseInt(ein.readLine());

		
			if(eingabe ==1 )this.option1();

			else if (eingabe==2 && kzaehler!=0){
				if (konto1!=null) konto1.printSaldo(); 
				if (konto2!=null) konto2.printSaldo();
				if (konto3!=null) konto3.printSaldo();
				System.out.println("\n");  	
			}
			else if (eingabe==3 && kzaehler!=0){
				System.out.println("\n          Willkommen beim Einzahl-Dialog!\n");
				System.out.println("Bitte geben Sie Ihre Konto-Nr ein:");
				kNrEinzahlung = Integer.parseInt(ein.readLine());
				System.out.println("Wie viel Euro (keine Cent!) moechten Sie heute einzahlen?");
				euroEinzahlung = Integer.parseInt(ein.readLine());
				System.out.println("Und wie viel Cent moechten Sie heute einzahlen?");
				centEinzahlung = Integer.parseInt(ein.readLine());
				
				if (kNrEinzahlung == 1 && konto1 != null){
					konto1.einzahlen(euroEinzahlung, centEinzahlung);
					konto1.printSaldo();
				}
				else if (kNrEinzahlung == 2 && konto2 != null){
					konto2.einzahlen(euroEinzahlung, centEinzahlung);
					konto2.printSaldo();
				}
				else if (kNrEinzahlung == 3 && konto3 != null){
					konto3.einzahlen(euroEinzahlung, centEinzahlung); 
					konto3.printSaldo();
				}
				else System.out.println("Falsche Konto-Nr! Dieses Konto existiert nicht!!");
			}
			else if (eingabe==4 && kzaehler!=0){ //Auszahlen ist analog zu einzahlen!
				System.out.println("\n          Willkommen beim Auszahl-Dialog!\n");
				System.out.println("Bitte geben Sie Ihre Konto-Nr ein:");
				kNrAuszahlung = Integer.parseInt(ein.readLine());
				System.out.println("Wie viel Euro (keine Cent!) moechten Sie heute ausgezahlt bekommen?");
				euroAuszahlung = Integer.parseInt(ein.readLine());
				System.out.println("Und wie viel Cent moechten Sie heute ausgezahlt bekommen?");
				centAuszahlung = Integer.parseInt(ein.readLine());
				
				if (kNrAuszahlung == 1 && konto1 != null){
					konto1.auszahlen(euroAuszahlung, centAuszahlung);
					konto1.printSaldo();
				}
				else if (kNrAuszahlung == 2 && konto2 != null){
					konto2.auszahlen(euroAuszahlung, centAuszahlung);
					konto2.printSaldo();
				}
				else if (kNrAuszahlung == 3 && konto3 != null){
					konto3.auszahlen(euroAuszahlung, centAuszahlung); 
					konto3.printSaldo();
				}
				else System.out.println("Falsche Konto-Nr! Dieses Konto existiert nicht!!");
				
			}	
		}
	}
		private void option1(){
					System.out.println("Konto anlegen \n");
					 
					switch (this.kzaehler){
						case 0: {kzaehler++;
					 			konto1 = new Konto();
					 			konto1.kontoAnlegen(ein,kzaehler); 
					 			break;
					 			} 
					 			
						case 1: {kzaehler++;
						 		konto2 = new Konto();
						 		konto2.kontoAnlegen(ein,kzaehler);
						 		break;
						 		} 
					 			
						case 2: {kzaehler++;
						 		konto3 = new Konto();
						 		konto3.kontoAnlegen(ein,kzaehler);
						 		break;
						 		} 
					 			
						default: System.out.println("Unsere Kapazitaeten sind leider schon erschoepft!\n");
					} 	
		}				
	public static void main(String[] args) throws IOException{
		new KontoFuehrung3();
	}
}
 
Du deklarierst die Variablen nicht als Klassen-Variablen, sondern als lokale Variablem im Konstruktor. Pack die Variablen-Deklarationen vor die Deklaration des Konstruktors, dann sollte es gehen.
 
du deklarierst alle variablen im konstruktor und somit sind sie lokale variablen und können nur innerhalb des konstruktor verwendet werden. wenn du diese variablen als klassenvariablen benutzen willst musst du sie außerhalb einer methode deklarieren, am besten immer am anfang einer klasse damit man die klassenvariablen sofort sieht.

Edit: shit 2.
 
So einfach war das! Einen Riesen-Dank an euch Jungs! Ihr habt meinen Abend gerettet! Manchmal sieht man vor lauter Bäumen den Wald nicht mehr...
Danke nochmal!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben