Java编程-类和方法

Java编程-类和方法,java,class,methods,equals,contains,Java,Class,Methods,Equals,Contains,我是Java编程新手,在课堂上有一项任务。 所以主要的事情是我必须创建一个名为BankAccount的公共类,它有3个参数:int number,String owner,int amount 然后我必须用这个类创建一个10的数组并填充它(所有者的名字是Name1、Name2等等) 然后我必须创建一个包含5个名字的字符串数组(例如:“James”、“Jack”等) 然后我不得不“修改”所有者的名字,这样我的程序就可以将5个名字中的一个随机附加到当前所有者名字的末尾。 所以它将是这样的,例如:Na

我是Java编程新手,在课堂上有一项任务。 所以主要的事情是我必须创建一个名为BankAccount的公共类,它有3个参数:int number,String owner,int amount

然后我必须用这个类创建一个10的数组并填充它(所有者的名字是Name1、Name2等等)

然后我必须创建一个包含5个名字的字符串数组(例如:“James”、“Jack”等)

然后我不得不“修改”所有者的名字,这样我的程序就可以将5个名字中的一个随机附加到当前所有者名字的末尾。 所以它将是这样的,例如:Name2Jack,Name3James,等等

我成功地做到了这一切。 但是后来

我的老师让我用另一种方法来决定,在10个有名字X的名字中,我有多少个

所以我这样做了:

public static int Count(BankAccount[] accounts, String name){
   int number=0;
       for (i=0; i<accounts.length, i++){
          if(accounts[i].owner.contains(name)==true)
              number++;
         }
   return number;
公共静态整数计数(银行账户[]账户,字符串名称){
整数=0;

对于(i=0;i,您似乎只需要更改这一行:

发件人:

if (accounts[i].owner.contains(name) == true)
if (accounts[i].owner.equals(name))
至:

if (accounts[i].owner.contains(name) == true)
if (accounts[i].owner.equals(name))
以下是包含两种变体的示例代码:

public class BankAccountDemo {

    public static void main(String[] args) {
        BankAccount[] bankAccounts = new BankAccount[5];
        bankAccounts[0] = (new BankAccount(1, "Name1James", 1000));
        bankAccounts[1] = (new BankAccount(2, "Name2Jack", 2000));
        bankAccounts[2] = (new BankAccount(3, "Name3Henry", 3000));
        bankAccounts[3] = (new BankAccount(4, "Name4Jack", 4000));
        bankAccounts[4] = (new BankAccount(5, "Name5James", 5000));

        System.out.println("Check A:");
        System.out.println(BankAccountDemo.Count(bankAccounts, "James"));
        System.out.println(BankAccountDemo.Count2(bankAccounts, "James"));

        System.out.println("Check B:");
        System.out.println(BankAccountDemo.Count(bankAccounts, "Name5James"));
        System.out.println(BankAccountDemo.Count2(bankAccounts, "Name5James"));

    }

    public static int Count(BankAccount[] accounts, String name) {
        int number = 0;
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i].owner.contains(name) == true) {
                number++;
            }
        }
        return number;
    }

    public static int Count2(BankAccount[] accounts, String name) {
        int number = 0;
        for (int i = 0; i < accounts.length; i++) {
            if (accounts[i].owner.equals(name)) {
                number++;
            }
        }
        return number;
    }
}

如果你不知道你的老师想要什么,作业是什么,我们如何帮助你?我需要做与我用.contains做的相同的事情,但不是用.equals做。但是如果所有者的名字不是“james”之类的,而是“Name1James”,那怎么可能呢例如。嘿!谢谢你的回答。也许我忘了什么:字符串名称(你给你的计数方法的名称)只能是“James”、“Henry”或“Jack”(在你的例子中),不能是“Name1James”,等等。如果我们只给“James”,它也可以这样工作吗作为字符串名称?或者为了使其工作,您还需要更改其他内容吗?我觉得。equals检查整个字符串,因此如果。equals只检查“james”,而数组中的字符串是“Name1james”。如果您看到检查a的输出,则第二个值是0。这是检查参数的结果使用.equals()将名称存储在BankAccounts中的“James”,由于找不到精确匹配,它返回0。我认为您的赋值是关于重写BankAccount类的equals()和hashCode()方法。当您希望使用自定义逻辑来比较两个Java对象时,这是必需的。