2014-03-12 4 views
0

컴파일 중입니다.하지만 무엇이 잘못되었는지 알 수 없습니다. 지금 며칠 동안 이걸로 고생하고있어. 그래, 난 초보자 야. 아무도 도와 줄 수 없어? 코드 하단의 메서드에서 오류 가져 오기.심볼을 찾을 수 없습니다. ArrayList

import java.util.ArrayList; 
import java.util.Scanner; 

public class BankLogic 
{ 
    private long pNr; 
    private int accountId; 
    private double amount; 
    private double balance; 
    private double rate; 

    private ArrayList<Customer> customerlist; 
    private ArrayList<SavingsAccount> accounts; 

    Scanner in = new Scanner(System.in); 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public BankLogic(){ 

     customerlist = new ArrayList<Customer>(); 
     accounts = new ArrayList<SavingsAccount>(); 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public String toString(){ 

     String info = "Personnummer: " + pNr + "\nKontonummer: " + accountId 
     + "\nSaldo: " + amount; 
    } 
    //---------------------------------------------------------------------- 
    // Beskrivning: returnerar presentation av alla kunder(pers.nr och namn) 
    // Returvärde: String 
    //---------------------------------------------------------------------- 
    public String infoBank(){ 

     return customerlist.toString(); 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public boolean addCustomer(String name, long pNr){ 

     for (Customer a : customerlist) 
     { 
      if (a.getPCode() == pNr) 
       return false; 
      else 
      { 
       Customer aCust = new Customer(name, pNr); 
       customerlist.add(aCust); 
      } 
     } 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public String infoCustomer(long pNr){ 

     for (Customer a : customerlist) 
     { 
      if (a.getPCode() == pNr) 
      { 
       System.out.println(a); 
      } 
     } 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public boolean changeCustomerName(String name, long pNr){ 

     for (Customer a : customerlist) 
     { 
      if (a.getPCode() == pNr) 
      { 
       Customer aCust = new Customer(name, pNr); 
       customerlist.add(aCust); 
      } 
     else 
      return false; 
     } 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public String removeCustomer(long pNr){ 

     for (int i = 0; i < customerlist.length; i++) 
     { 
      Customer a = customerlist.get(i); 
      if (a.getPCode() == pNr) 
      { 
       customerlist.remove(i); 
      } 
      else 
       i++; 
     } 

    } 


    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public int addSavingsAccount(long pNr){ 

     for (Customer a : customerlist) 
     { 
      if (a.getPCode() == pNr) 
      { 
       boolean added = false; 
       for (int i = 0; !added && i < accounts.size(); i++) 
       { 
        added = accounts.get(i).addAccount(a); 
        if(added) 
        { 
         System.out.println("Kontonummer: " + accounts.get(i).getAccountId(); 
        } 
        else 
         return "Kontot skapades inte."; 
       } 
      } 
     } 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public String infoAccount(long pNr, int accountId) 
    { 
     for (Customer a : customerlist) 
     { 
      if (a.getAccountId() == accountId && a.getPCode() == pNr) 
       return a.infoCust(); 
     } 
     return null; 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public boolean deposit(long pNr, int accountId, double amount){ 

     for (Customer a : customerlist) 
     { 
      if ((a.SavingsAccount.getAccountId() == accountId) && (a.getPCode() == pNr)) 
      { 
       a.SavingsAccount.getBalance() = balance + amount; 
      } 
      else 
       return false; 
     } 
    } 

    //---------------------------------------------------------------------- 
    //---------------------------------------------------------------------- 
    public boolean withdraw(long pNr, int accountId, double amount){ 

     for (Customer a : customerlist) 
     { 
      if ((a.getAccountId() == accountId) && (a.getPCode() == pNr)) 
      { 
       a.getBalance() = balance - amount; 
       return true; 
      } 
      else 
       return false; 
     } 
    } 

} 
+2

정확한 오류와 오류의 원인을 알려주십시오. –

+0

? Eclipse 또는 Smthg와 같은 IDE를 사용하고 있습니까? 어떻게 컴파일합니까? javac? – Gab

+0

온라인으로 컴파일하면 118 행에 오류가 발생합니다 (https://ideone.com/eNqqga). 여분의 ")"이 필요합니다. –

답변

0

다음 두 문장이 잘못되었습니다. 표현식의 왼쪽은 변수 여야하며이 경우 값입니다.

 a.SavingsAccount.getBalance() = balance + amount; 


      a.getBalance() = balance - amount; 

적절한 변수 또는 설정 메소드를 사용하여 수정하십시오. 희망이 도움이됩니다. 위의 코드에서 오류가 모든 종류의있다

+0

실제로 SavingsAccount는 여기에서 매우 잘못되었습니다. 하나씩 방법을 통해 가서 도움이되는지 확인하십시오. –

1

내가 한 눈에 볼 수 있습니다

  • toString() 아무것도 반환하지 않습니다를
  • (그냥 선언 바로 다음 방법으로 수집 된 쓰레기의 지역 변수 종료)
  • addCustomer()이 항상 어떤 것을 반환하지는 않습니다.
  • infoCustomer()removeCustomer()은 방법 헤더에
  • addSavingsAccount()는 (방법 헤더에 따라) int를 반환해야한다고 선언에도 불구하고, 아무것도 반환하지,하지만 문자열을 반환 - 때때로. Customer 다음 a.SavingsAccount.getAccountId() (많은면에서 무시 무시하게 나쁜 디자인 될 것이다) SavingsAccount라는 공공 필드가 비슷한 잘못하지 않는 한
  • , 당신은 아마 그 특정 예금 계좌 도착 Customer의 방법을 원한다.

최소한 기본적인 구문 측면을 다룰 때까지 코드를 훨씬 더 작은 단위로 검사해야하는 습관이 필요합니다. 그렇게하면 수정해야 할 부분이 많으며 수정 방법에 대한 지식이 거의없는 이런 종류의 시나리오에서는 끝나지 않을 것입니다.

메소드를 추가 할 때마다 (예를 들어) 중지, 컴파일, 체크가 원하는대로 작동하며 다음 작업으로 이동하십시오. 장기간에 걸쳐 많은 시간을 절약 할 수 있습니다.

+0

선사 시대에 오신 것을 환영합니다 ^^. – Gab

+0

고마워, 나는 지금 하나씩 그것을 얻으려고 노력하고있다. –

관련 문제