【问题标题】:Trouble with List/Interface列表/界面问题
【发布时间】:2011-11-19 08:50:10
【问题描述】:

我的联系人列表程序无法运行。我有 3 个类:main()、contact()、contactlist()。

我的主要问题是我想让我的 main() 打印一个菜单并让它控制导航。我很想在 Contactlist() 中编写一个方法,但我想在 main() 中执行此任务。

我创建了一个基本的框架代码,我确信它在很多方面都是错误的。我的列表界面有一些问题。

ContactList 中出现错误:List<Contact> contacts;

在 Contact.java 中,getContactBylName 方法也出现错误。

主要()

//Main class for contact list
public class Main {
   public static void main(String[] args) {

   }
}

联系()

import java.util.List;
import java.util.Scanner;

//Class implemented by ContactList
public class Contact implements ContactList {

String fName;
String lName;
String email;
String streetAdd;
String zipCode;

Scanner scan = new Scanner(System.in);

//Constructor
public Contact (String fName, String lName, String email, String streetAdd, String zipCode) {

}

//implementation for adding contact
public void addContact(Contact contact) {
    contacts.add(contact);
}
//implementation for printing contact list
public void printContacts(Contact contact) {

    }

//implementation for getting contact by last name
public void getContactBylName(String lName) {
    System.out.println("Enter a last name to search:");
    lName = scan.nextLine();

    if (ContactList.lName == lName) {
        return Contact;
        }

//implementation for getting contact by email
public void getContactByemail(String email) {
    System.out.println("Enter an email to search:");
    email = scan.nextLine();

    if (ContactList.email == email) {
        return Contact;
        }
}
public void getContactByzipCode(String zipCode) {

}
}

联系人列表()

//Class implementing list Contact
import java.util.List;

public interface ContactList {

 List<Contact> contacts;

 contacts = new ArrayList<Contact>();

 //method to add contact
void addContact(Contact contact);

//method to print contact list
void printContacts(Contact contact);

//method to get a contact by last name
void getContactBylName(String lName);

//method to get a contact by email address
void getContactByemail(String email);

//method to get all contacts in a zip code
void getContactByzipCode(String zipCode);
}

【问题讨论】:

  • "Getting an error" 表示您有错误消息 - 请告诉我们它是什么。 始终在您的问题中包含错误消息。
  • 列出 联系人;说令牌“;”上的语法错误,我的 getContactBylName 中的预期错误说 lName 无法解析或不是字段
  • 在java中,类不能有括号,所以不可能你有类叫Main()Contacts()ContactList()。在你提出问题之前请三思
  • 对不起,我是java新手,没必要这么苛刻

标签: java compilation compiler-errors java.util.scanner


【解决方案1】:

这就是问题所在:

public interface ContactList {
    List<Contact> contacts;
    ...
}

您不能在接口中声明字段(常量除外)。接口就是 API - 由实现决定是否要将其数据存储在 List&lt;Contact&gt; 或其他东西中。

此外,Contact 应该实现ContactList - 将“单个联系人”的概念与“联系人集合”分开。您的界面也应该返回来自每个“get”方法的Contact 引用......所以它看起来像这样:

public interface ContactList {
    void addContact(Contact contact);    
    void printContacts();    
    Contact getContactByLastName(String lastName);    
    Contact getContactByEmail(String email);
    Contact getContactByZipCode(String zipCode);
}

【讨论】:

  • 你是在建议我不要使用界面吗?我实际上有其他人建议我使用它们
  • 为什么不使用接口。但是在使用之前知道如何使用它。
  • @Marimon:我没有建议你不应该使用界面——事实上,我向你展示了界面应该是什么样子。但是你需要两个类:一个实现接口,一个是Contact 类,它不应该实现接口。
猜你喜欢
  • 2010-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-15
  • 2016-05-02
  • 1970-01-01
相关资源
最近更新 更多