我无法弄清楚这个错误信息(ArrayList BankAccount代码)

时间:2013-12-04 20:19:21

标签: java arraylist

我明天正在尝试用Java进行测试,但我无法弄清楚发生了什么。

import java.util.ArrayList;
public class BankAccount
{
    public static void BankAccount(double x)
    {
        ArrayList<BankAccount> accounts = new ArrayList<BankAccount>();
        BankAccount ted = new BankAccount(400);
        BankAcconut bob = new BankAccount(300);
        BackAccount carol = new BankAccount(500);
        accounts.add(new BankAccount(300));
    }
}

我不断收到一条错误消息,指出“类BankAccount中的构造函数BankAccount不能应用于给定的术语;必需:没有参数;找到:int;

我知道这是小奶酪,而不是你们在做什么,但我是新手。提前谢谢。

7 个答案:

答案 0 :(得分:1)

你还没有提供任何构造函数,所以Java creates a default constructor没有参数,什么也没做。

提供一个单参数构造函数,它接受您提供的int

答案 1 :(得分:1)

BankAccount没有任何明确的构造函数。您似乎混淆了名为static的{​​{1}}方法(不要这样做;它要求混淆)与构造函数混淆。你可能想做这样的事情:

BankAccount

然后将正在构建public class BankAccount { private double balance; public BankAccount(double balance) { this.balance = balance; } } 个对象的其他代码放在其他位置,例如BankAccount。 (将main放在同一个类上是可以的,但它基本上无关紧要。重要的是你需要一个你想要构建的类的构造函数。)

答案 2 :(得分:0)

您的班级BankAccount需要一个看起来像这样的构造函数。

public BankAccount(int funds){
    this.funds = funds;
}

这假定课程BankAccount有一个名为funds的属性,可以代表可用的资金。

答案 3 :(得分:0)

public static void BankAccount(double x)

Java中没有静态构造函数。这就是为什么它不能作为构造函数进行regocnized。只需删除staticvoid,如下所示。

因为没有自动定义构造函数,所以在编译时添加了一个没有参数的构造函数,并且因为“你的”构造函数与你想调用的构造函数不匹配,所以会得到这个错误。

答案 4 :(得分:0)

这是因为您尚未定义接受BankAccount的{​​{1}}构造函数。修改您的代码如下:

int

答案 5 :(得分:0)

import java.util.ArrayList;


public class BankAccount {

private double balance = 0.0;

public BankAccount() {
    // TODO Auto-generated constructor stub

}

public BankAccount(double d) {
    // TODO Auto-generated constructor stub
    balance = d;
}

public static void main(String[] args) //BankAccount(double x)
{
    ArrayList<BankAccount> accounts = new ArrayList<BankAccount>();
    BankAccount ted = new BankAccount(400.0);
    BankAccount bob = new BankAccount(300.0);
    BankAccount carol = new BankAccount(500);
    accounts.add(new BankAccount(300));
}

}

答案 6 :(得分:-1)

在数字后添加“D”;这将使它成为双倍。

所以这个

  

BankAccount ted = new BankAccount(400);

变为

  

BankAccount ted = new BankAccount(400D);