好的,所以我有一个正在创建的迷你程序,称为手机。它具有3个类:Main.java,Contact.java和MobilePhone.java。

Main.java使用扫描仪执行静态方法,以通过电话菜单显示和返回信息。 Contact.java是一个简单的类,用于存储姓名和电话号码。 MobilePhone.java具有一个ArrayList,它将Contact类中的对象存储为联系人,然后具有诸如addContact()的几种方法。移除联系人(); queryContact(); ModifyContact();等等...

我遇到的问题是我正在Main.java中运行这些静态方法,其中一些调用MobilePhone.java中的公共非静态方法,而它们似乎并未执行这些方法中的所有代码。这是一个例子:

在Main.java中,我有一个名为addContact()的方法;看起来像这样:
注意mobilePhone(区分大小写)是新MobilePhone类的名称。

private static void addContact(){
    System.out.println("Enter name: ");
    String name = scanner.nextLine();
    System.out.println("Enter number: ");
    String number = scanner.nextLine();
    Contact newContact = Contact.createContact(name, number);
    mobilePhone.addContact(newContact);
}


mobilePhone.addContact();看起来像这样:

public void addContact(Contact contact){
    for(int i = 0; i < this.contacts.size(); i++){
        if(this.contacts.get(i).equals(contact)){
            System.out.println("Contact already exists.");
        } else {
            this.contacts.add(contact);
            System.out.println("New contact: " + contact.getName() + " - "
                    + contact.getNumber() + " added.");
        }
    }
}


发生的情况是扫描程序正在从Main.addContact();输入;但当到达该行时,mobilePhone.addContact(newContact);它似乎并没有在该函数中执行任何操作。似乎是这样,因为无论如何都不会从任何System.out.println()打印任何内容。

我还有一个函数可以打印ArrayList中的所有对象,称为printContacts();。而且它也不在打印:

public void printContacts() {
    System.out.println("Contacts List: ");
    for(int i = 0; i < contacts.size(); i++){
        System.out.println("#" + (i+1) +". " + this.contacts.get(i).getName()
                + " - " + this.contacts.get(i).getNumber());
    }
}


我不知道是什么问题。我没有收到错误,只是没有得到我想要的返回信息。

最佳答案

MobilePhone.addContact()中,您具有用于在for循环内添加联系人的代码-因此,每当已经存在的另一个联系人不相等时,便添加该联系人。

开始时,没有联系人(我认为),因此它不会添加联系人...从不。因此,无法添加任何联系人。您观察到的所有其他问题可能是这种情况的结果-例如如果您无法添加任何内容,则永远不会打印任何内容。

固定:

public void addContact(Contact contact){
    for(int i = 0; i < this.contacts.size(); i++){
        if(this.contacts.get(i).equals(contact)){
            System.out.println("Contact already exists.");
            return;
        }
    }

    this.contacts.add(contact);
    System.out.println("New contact: " + contact.getName() + " - "
        + contact.getNumber() + " added.");
}

10-07 19:34
查看更多