2015-02-21 3 views
-4
public class AccountDemo { 

    public static void main(String [] args) { 

     Account accountholder1, accountholder2, accountholder3; 

     accountholder1 = new Account(100, 10, 1000, "", ""); 
     accountholder1.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 

     accountholder2 = new Account(200, 20, 2000, "", ""); 
     accountholder2.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 

     accountholder3 = new Account(300, 30, 3000, "", ""); 
     accountholder3.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 
    } 
} 

На numOfAccounts он продолжает говорить cannot find symbol - variable numOfAccounts.не может найти символ (numOfAccounts)

+1

Нет переменной 'numOfAccounts', и ваша IDE сообщает об этом. Если вы хотите использовать его, сначала создайте соответствующую переменную. – Tom

+0

Как создать соответствующую переменную? – Aneeqa

+0

Это может помочь вам: http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html. Имейте в виду, что вам нужна переменная 'static'. – Tom

ответ

2

Ошибка означает, что Java не может найти numOfAccounts. И в самом деле, я не могу найти его либо - вы должны объявить его как статическое поле, если вы хотите получить доступ к нему так:

public class AccountDemo { 
    public static int numOfAccounts = 10; 
    ... 
    public static void main(String [] args) { 
    ... 

Но прежде чем это сделать, убедитесь, что understand the difference между статическим и переменные экземпляра.

2

Вам не хватает numOfAccounts в вашем классе. И по внешнему виду он должен быть статичным.

public class AccountDemo { 

    static int numOfAccounts = 0; 

    AccountDemo(){ 
     numOfAccounts++; //increment number of accounts 
    } 

    public static void main(String [] args) { 

     Account accountolder1, accountHolder2, accountHolder2; 

     accountolder1 = new Account(100, 10, 1000, "", ""); 
     accountolder1.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 

     accountolder2 = new Account(200, 20, 2000, "", ""); 
     accountolder2.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 

     accountolder3 = new Account(300, 30, 3000, "", ""); 
     accountolder3.showData(); 
     System.out.println(AccountDemo.numOfAccounts+" accounts opened"); 
    } 
} 
+0

Если numOfAccounts tellf os количество экземпляров учетной записи, а не AccountDemo, переместите этот конструктор в класс Account. Потому что я думаю, что вы хотели создать экземпляры AccountDemo в основном. – Beri

Смежные вопросы