Не могу заставить мой класс Java работать

1

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

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

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.
  • 1
    a1 = new BankAccount(); BankAccount a1 = new BankAccount(); это не должно быть записано как: BankAccount a1 = new BankAccount(); ? Я не вижу, чтобы a1 был объявлен где-либо еще в вашем классе BankAccountTester .
Показать ещё 2 комментария
Теги:
class
constructor

3 ответа

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, имя переменной не должно начинаться с заглавной буквы.

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню