Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用从一个类到另一个类的方法_Java_Arrays_Class_Methods - Fatal编程技术网

Java 使用从一个类到另一个类的方法

Java 使用从一个类到另一个类的方法,java,arrays,class,methods,Java,Arrays,Class,Methods,我的最后一种方法有问题。我被告知,我必须在我的银行类中使用monthlyFee方法中的BankAccount.class中的adjust方法,我无法理解。我尝试过多种不同的方法,但都无法成功。我们需要用月费调整账户余额 Bank.java:33:错误:类BankAccount中的方法adjust不能为 适用于给定类型;BankAccount.adjust()^ 必需:双重查找:无参数原因:实际和正式 参数列表长度不同1错误 Bank.java:33:错误:无法取消引用double费用。adjus

我的最后一种方法有问题。我被告知,我必须在我的银行类中使用monthlyFee方法中的BankAccount.class中的adjust方法,我无法理解。我尝试过多种不同的方法,但都无法成功。我们需要用月费调整账户余额

Bank.java:33:错误:类BankAccount中的方法adjust不能为 适用于给定类型;BankAccount.adjust()^
必需:双重查找:无参数原因:实际和正式 参数列表长度不同1错误

Bank.java:33:错误:无法取消引用double费用。adjust();1. 错误

Bank.java:33:错误:找不到符号Bank.BankAccount.adjust(); 符号:可变银行帐户位置:类型为的可变银行 银行帐户[]1错误

银行账户类

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;   
}
}
银行类

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
   }
}
}
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!!!");
}
}

非常感谢您的帮助和指导。谢谢。

很简单:当您检查测试代码时,您发现调用adjust()方法时,它传递了一个双精度值


您的其他代码(导致错误的代码)在调用该方法时似乎没有传递任何double

似乎忘记将费用参数传递给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
    }
  }
public void monthlyFee(双倍费用){//银行账户月费
对于(int i=0;i
创建银行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 Joe Mac拥有账户1234,余额为997.05美元 Sally Ride拥有账户2345,余额为1997.05美元 帕特·阿姆斯特朗拥有3456账户,余额为2997.05美元

错误:


没有发现错误!!!在调用给定银行帐户对象的adjust方法时,需要传递一个双精度值,并始终发布给出错误的确切代码。不张贴错误内容,但在导致问题的地方有不同的代码和注释!永远有一个快乐的夜晚!我试过类似的方法,但我从未把费用放在括号里。非常感谢。@A.O'Mary非常欢迎您。我很感激你能迅速接受我的回答,即使是在回答另一个问题的时候;-)