Использование метода из одного класса в другой класс - PullRequest
0 голосов
/ 11 февраля 2019

У меня проблемы с моим последним методом.Мне сообщили, что я должен использовать свой метод корректировки из моего BankAccount.class в моем методе monthFee в своем классе банка, и я не могу понять это.Я пробовал несколько разных вещей и не могу заставить его работать.Нам необходимо скорректировать остатки на счетах с ежемесячной платой.

Bank.java: 33: ошибка: метод корректировки в классе BankAccount не может быть применен к данным типам;BankAccount.adjust ();^
обязательно: double найдено: нет аргументов причина: фактические и формальные списки аргументов различаются по длине 1 error

Bank.java: 33: error: double не может быть разыменовано fee.adjust ();1 ошибка

Bank.java: 33: ошибка: не удается найти символ bank.BankAccount.adjust ();символ: переменная BankAccount расположение: переменная банка типа BankAccount [] 1 ошибка

BankAccount.class

public class BankAccount {

String owner; // owner of account
int accountNumber; // integer account number
double balance = 0.0; // account balance
double amount; // adjusted amount to balance
String balanceFmt = "%.2f"; // string format for 2 decimal places

public BankAccount(String owner, int accountNumber) { //Constructor for the bank account
   this.owner = owner;
   this.accountNumber = accountNumber;
}

public double adjust(double amount) { //method to adjust balance
   this.balance += amount;
   return balance;
}
public String toString() { // method to print out account info
   return owner + " owns the account " + accountNumber + " with the balance of $" + String.format(balanceFmt,balance);

}
public double getBalance() { // method to get balance of accounts
   return balance;   
}
}

Bank.class

public class Bank {

BankAccount bank[];

public Bank() { // constructor for making a 10 account array
   bank = new BankAccount[10];
}

public void addAccount(BankAccount accounts) { // add account for giving numbers to accounts
   for(int i = 0; i < bank.length; i++) {
      if(bank[i] == null) {
         bank[i] = accounts;
         break;
      }
   }
}

BankAccount getAccount(int i) { //obtain account from BankAccount class
   return bank[i];
}

public void printAccounts() { //prints out account statuses
   for(int i = 0; i < bank.length; i++) {
      if(bank[i] != null) {
      System.out.println(bank[i]);
      }
   }
}

public void monthlyFee(double fee) { //monthly fee for bank accounts
   for(int i = 0; i < bank.length; i++) {
      if(bank[i] != null) {
      } //I have tried BankAccount.adjust() and couldn't work, bank[i].adjust() nothing seems to work
   }
}
}

BankTest.class

public class BankTest { 
/*
 * test - set up a bank and add accounts
 */

public static void main(String[] args) {
// Code to test Bank and BankAccount classes
int errors = 0;
double fee = -2.95;

Assignment assignment = new Assignment();
assignment.homework("Homework 2a");

System.out.println("\nCreate bank1");
Bank bank1 = new Bank();
System.out.println("\nOne account");
BankAccount bankAccount1 = new BankAccount("Joe Mac", 1234);
bankAccount1.adjust(1000.0);
bank1.addAccount(bankAccount1);
bank1.printAccounts();
System.out.println("\nTwo accounts");
BankAccount bankAccount2 = new BankAccount("Sally Ride", 2345);
bankAccount2.adjust(2000.0);
bank1.addAccount(bankAccount2);
bank1.printAccounts();
System.out.println("\nThree accounts");
BankAccount bankAccount3 = new BankAccount("Pat Armstrong", 3456);
bankAccount3.adjust(3000.0);
bank1.addAccount(bankAccount3);
bank1.printAccounts();
System.out.println("\nMonthly Fee");
bank1.monthlyFee(fee);
bank1.printAccounts();
System.out.println("\nErrors:");

if (bank1.getAccount(0).getBalance() != 997.05) {
    errors += 1;
    System.out.println("Balance for account at index 0 does not match $997.05");
}
if (bank1.getAccount(1).getBalance() != 1997.05)
{
    errors += 1;
    System.out.println("Balance for account at index 1 does not match $1997.05");
}
if (bank1.getAccount(2).getBalance() != 2997.05)
{
    errors += 1;
    System.out.println("Balance for account at index 2 does not match $2997.05");
}
if (errors == 0)
    System.out.println("No errors found!!!");
}
}

Любая помощь и руководство высоко ценится.Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Похоже, вы забыли передать параметр fee в метод Adjust ().Следующий код прекрасно работает

 public void monthlyFee(double fee) { //monthly fee for bank accounts
    for(int i = 0; i < bank.length; i++) {
      if(bank[i] != null) {
        System.out.println(bank[i].adjust(fee));
      } //I have tried BankAccount.adjust() and couldn't work, bank[i].adjust() nothing seems to work
    }
  }

Создать банк1

Один аккаунт Joe Mac владеет аккаунтом 1234 с балансом $ 1000,00

Два аккаунта Joe Mac владеет аккаунтом 1234 сбаланс $ 1000,00 Sally Ride владеет счетом 2345 с балансом $ 2000,00

Три счета Joe Mac владеет счетом 1234 с балансом $ 1000,00 Sally Ride владеет счетом 2345 с балансом $ 2000,00 Пэт Армстронг владеет счетом3456 с балансом $ 3000,00

Ежемесячная плата 997,05 1997,05 2997,05 Джо Мак владеет счетом 1234 с балансом $ 997,05 Салли Райд владеет счетом 2345 с остатком 1997,05 $ Пат Армстронг владеет счетом 3456 с остатком $ 2997,05

Ошибки:

Ошибок не найдено !!!

0 голосов
/ 11 февраля 2019

Простой: когда вы проверяете свой тестовый код, вы обнаруживаете, что он передает двойное значение, когда вызывается метод Adjust () !

Ваш другой код (тот, который приводит кошибка), кажется, не проходит двойную при вызове этого метода!

...