2016-03-21 24 views
-1

Merhaba arkadaşlar bir arraylist'te saklanan Hesap Numaramı kullanarak giriş yapmaya çalışıyorum, Hesap Numarası ile kullanıcı girişini eşleştiremiyorum. Kod aşağıdadır:Hesap Numarası-Java ile nasıl oturum açılır

Giriş Yöntemi-Main Sınıf

private void Login(){ 

    int UserInput; 
    Scanner option = new Scanner (System.in); 

    Account Account = new Account(); 
    ArrayList<Client> customers = bank.getCustomers(); //Gets Customer Info from Bank 
    System.out.println("What is your Account Number?"); 
    UserInput = option.nextInt(); 



     if(UserInput==Account.getAccountNumber()){ 
      Menu(); 
      int choice = UserInput(); 
      performAction(choice); 
     //system.out.println(i+1 + ")" + customers.get(i).BasicInfo()); 
     } 
     else { 
      System.out.println("Invalid Account Number"); 
      } 




    } 

ArrayList - Banka Sınıf

public class Bank { 

    ArrayList<Client> customers = new ArrayList<Client>(); //Adds customer details in this 

     void addCustomer(Client customer) { 
     // TODO Auto-generated method stub 
     customers.add(customer);//Adds customer from Menu to ArrayList 
    } 

     Client getCustomer(int account) { 
     // TODO Auto-generated method stub 
     return customers.get(account); //Returns Customer detail from ArrayList 
    } 

     ArrayList <Client> getCustomers(){ 
      return customers; //Returns customers 
     } 

} 

Merhaba çocuklar, ana sınıftaki userInput'u 'GetMethod'dan AccountNumber' ile eşleştirebilmeyi amaçlıyorlar. 'Bank' sınıfında bir arabulucuda saklandığına inanıyorum. Hesap numarasıyla eşleşirse, if deyiminde diğer yöntemler çalışır. Şu anda AccountNumber'e girdiğimde, sadece else ifadesine gider ve "Geçersiz AccountNumber" i gösterir. Bu mantıklı değilse özür dilerim.

+0

Hesap Hesabı = new Account(); nesneyi tanıtmak için sınıf adını kullanmayın. – TheMirrox

+0

Ya da sadece uygun java adlandırma standartlarını kullanın .. –

cevap

1

Kodunuzdan, başka bir yerde kullanıcı hesap numarasını kaydediyorsunuz.

Hesap sınıfından aldığınız hesap numarası, atamak için kullanılabilen bir sonraki hesap numarasıdır. Hesap sınıfını başlattığınızda, Hesap oluşturucusu içinde hesap numarasını artırır. Bu sayı Account.getAccountNumber() öğesinden döndürülür.

Bu, mevcut bir kullanıcının hesap numarası olamaz.

Çözüm: Müşteri sınıfınızı burada göndermediniz. Ancak, müşteri sınıfının içinde bir account_number değişkenine sahip olmalısınız. Hesap numarası için bir alıcı ayarlayabilirsin. Bankanın içinde müşterinin listesi var. Bu gibi görünebilir her müşteri yineleme ve banka sınıf içinde olanlar customers.Your döngünün hesap numarası ile giriş hesap numarası eşleşmesi gerekir:

for(int i=0;i<customers.size();i++){ 
    if(inputAccountNumber == customers.get(i).getAccountNumber()) 
    { 
     return true; 
    } 
    } 

Bu ölçeklenebilir bir çözüm değildir. Müşteri için müşteri numarası, müşteri için müşteri sınıfı örneği olarak anahtar ve değer olarak bir hashmap ayarlayabilirsiniz.

Bu sorununuzu çözdüğünü umuyorum.

+1

Yardım çok, Teşekkürler Adam !!! – John

İlgili konular