2014-11-21 5 views
1

Я должен сделать класс и класс тестера, который позволяет клиенту вводить его имя и текущую сумму денег, а также любые вклады или изъятия, которые он хотел бы сделать. Возможно, неправильный код, но мне интересно, что я делаю неправильно с кодом. Одна из проблем заключается в том, что он говорит, что getBalance является недопустимым объявлением метода.Не удается заставить мой класс Java работать

Это класс с конструкторами

public class BankAccount{ 
    public String name; 
    public double Balance, Withdrawal, Deposit; 

    public BankAccount(double bal, String nm){ 
     name = nm; 
     Balance = bal; 
    } 


    public void setName (String nm){ 
     name = nm; 
    } 

    public String getName(){ 
     return name; 
    } 

    public String toString(){ 
     return "Name: " + name + "\n" + 
     "New Balance :  " + getBalance; 
    } 

    public getBalance(){ 
     return Balance; 
    } 

    public double Withdrawal(){ 
     bal = Balance - Withdrawal; 
    } 

    public double Deposit(){ 
     bal = Balance + Deposit; 
    } 
} 

Это класс тестер

import java.util.Scanner; 

public class BankAccountTester{ 
    public static void main(String [] args){ 
     Scanner reader = new Scanner(System.in); 
     a1 = new BankAccount(); 

     String name; 
     int Balance, Withdrawal, Deposit; 

     System.out.println("What is the name of the bank account holder?"); 
     name = reader.nextLine(); 

     System.out.println("What is your current balance?"); 
     Balance = reader.nextInt(); 

     System.out.println("How much do you wish to deposit?"); 
     Deposit = reader.nextInt(); 

     System.out.println("How much do you with to withdraw?"); 
     Withdrawal = reader.nextInt(); 

     System.out.println("\n" + a1.getName()); 

    } 
} 

Не могли бы вы рассказать мне, что я делаю неправильно и объяснить это?

+2

В Java стандартная практика использования начальных букв капитала для классов и строчных букв для переменных. Это упростит чтение кода для других разработчиков Java. – khelwood

+1

'a1 = new BankAccount();' Не следует записывать это как: 'BankAccount a1 = new BankAccount();'? Я не вижу, чтобы 'a1' был объявлен где-либо еще в вашем классе BankAccountTester. –

+2

Я не думаю, что этот вопрос заслуживает отрицательной репутации. Да, решение может быть простым, но вопрос был хорошо продуман, и код был кратким и легко читаемым. По сравнению с 95% вопросов, этот заслуживает аплодисментов. –

ответ

0

Вашему методу getBalance() нужен тип возврата. Измените объявление на public double getBalance(). В качестве стороннего примечания Java-соглашение говорит, что нельзя использовать первую букву имени переменной. Следующее соглашение упрощает чтение кода другим, что приведет к более качественным ответам.

2

Обратный тип метода getBalance() отсутствует, тогда как вы возвращаете переменную типа double. Объявляем его как: -

public double getBalance(){ // add double as the return-type here 
    return Balance; 
} 

Кроме того, как уже упоминалось, Дрю Кеннеди --- объявить объект класса BankAccount, добавив класс BankAccount вместе с a1. Вы не упомянули его в любом месте ...

BankAccount a1 = new BankAccount(); // you're missing class name BankAccount 
0

Метод getBalance() не имеет тип возвращаемого значения и все же вы попросили его вернуть значение. Также попробуйте следовать соглашениям об именах Java, имя переменной не должно начинаться с заглавной буквы.

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