Обновление: исправлена ошибка, добавив в поле экземпляра. - Спасибо.
Когда я компилирую программу, я сталкиваюсь с не могу найти символ "activeaccount" в методе MainMenu. Я смущен, почему я получаю эту ошибку, потому что я установил объект "activeaccount" в конструкторе. Есть идеи? Заранее спасибо!
public class Account
{
/**
* Constructor for objects of class Account
*/
public Account()
{
BankAccount activeaccount = new BankAccount("Seth Killian", "Savings", 500.00, 6.0, 0.25, 10000.00);
}
public void MainMenu()
{
Scanner in = new Scanner (System.in);
switch (in.nextInt())
{
case 0:
Initialize();
case 1: //Check balance
activeaccount.printBalance();
SelectOption();
case 2: //Make a deposit
double amount;
System.out.print("Deposit Amount: $");
amount = in.nextDouble();
activeaccount.deposit(amount);
SelectOption();
case 3: //Make a withdrawl
System.out.print("Withdrawl Amount: $");
amount = in.nextDouble();
activeaccount.withdrawl(amount);
SelectOption();
case 4: //Apply Annual Interest
activeaccount.addInterest();
SelectOption();
case 5: // Print Log
activeaccount.printLog();
SelectOption();
case 6: // Exits application
System.exit(0);
default: // Unrecognized Selection
System.out.println ("Error: Selection Unrecognized");
SelectOption();
}
}
activeaccount
существует только в области конструктора. Если вы хотите получить доступ к activeaccount
в других частях класса, создайте для него переменную экземпляра:
private BankAccount activeaccount; // the instance variable
public Account() {
activeaccount = new BankAccount("Seth Killian", "Savings", 500.00, 6.0, 0.25, 10000.00);
}
Или в одной строке (конструктор можно опустить):
private BankAccount activeaccount = new BankAccount("Seth Killian", "Savings", 500.00, 6.0, 0.25, 10000.00);
BankAccount activeaccount = new BankAccount("Seth Killian",
"Savings", 500.00, 6.0, 0.25, 10000.00);
Вы объявляете локальную переменную в своем конструкторе. Он доступен только в рамках вашего конструктора. Если вы хотите, чтобы это была переменная экземпляра, вы должны добавить ее в определение класса.
private BankAccount activeaccount;
public Account() {
activeaccount = new BankAccount("Seth Killian",
"Savings", 500.00, 6.0, 0.25, 10000.00);
}
Это потому, что вы создаете локальный переменный activeaccount
внутри конструктора, который выходит за пределы области, когда конструктор заканчивается.
Переместите объявление до уровня класса и просто создайте его в конструкторе, например:
public class Account {
private BankAccount activeaccount;
public Account() {
activeaccount = new BankAccount("Seth Killian", "Savings", 500.00, 6.0, 0.25, 10000.00);
}
:
and so on.