2017-03-18 11 views
0

私のクラスでは、arraylistを使用して銀行口座を作成しています。 arraylistを含むコンストラクタを作成しようとしましたが、解決できないというエラーが発生しました。任意の助けをいただければ幸い、私が受けてるおかげ:)ArrayListを解決できません

public class Bank { 
public Bank() { 
    ArrayList<Account> bankArray = new ArrayList<Account>(); 
} 

public void addNewAccount(Account a) { 
    bankArray.add(a); //error here 
    return; 
} 

public Account getAccountByIndex(int idx) { 
    return bankArray(idx); //error here 
} 

public ArrayList getAccounts() { 
    return bankArray; //error here 
} 

エラーは、これが唯一のコンストラクタ範囲に存在するように宣言し、

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
bankArray cannot be resolved 

at Bank.addNewAccount(Bank.java:17) 
+1

bankArrayはあなたのコンストラクタのローカル変数です。したがって、コンストラクタの外側には表示されません。あなたはそれをフィールドにする必要があります。 –

答えて

1

あなたはBankコンストラクタすなわち内部bankArrayを宣言した、範囲、すなわち(コンストラクタ外に)無効です、 bankArrayはONLYので、以下のようなクラスレベルの変数として宣言、コンストラクタ内でアクセスすることができます:私のクラスのために

public class Bank { 

     //Declare bankArray as instance variable 
     ArrayList<Account> bankArray; 

     public Bank() { 
     this.bankArray=new ArrayList<>();//use <> operator to make it less verbose 
     } 
     //add other code of the class 
    } 
2

あなたbankArrayです。あなたはすべてのクラスのために、このプロパティにアクセスしたい場合は、直接、クラス定義の下でそれを宣言する必要があります。

public class Bank { 
List <Account> bankArray 
public Bank() { 
    this.bankArray = new ArrayList<Account>(); 
} 
0

我々はArrayListのを使って銀行口座を作成しています。 I arraylistを含むコンストラクタを作成しようとしましたが、 解決できないというエラーが表示されます。

以下のArrayListは、コンストラクタの範囲内でのみ表示およびアクセスできます。あなたがこれを行う必要があり、クラス全体にはグローバルにする

public Bank() { 
    ArrayList<Account> bankArray = new ArrayList<Account>(); 
} 

public class Bank { 
    ArrayList <Account> bankArray; 
    public Bank() { 
     this.bankArray = new ArrayList<Account>(); 
    } 
} 
関連する問題