2014-11-17 31 views
0

我想要获取用Java创建的联系人列表。我认为我有很多,但我相信它可以得到提高。我相信我可以将项目添加到数组列表,但是,当我尝试打印数组列表时,我会收到一些随机文本和数字。另外,我不会因为通过联系人ID号识别而丢失,然后只是打印该联系人。任何对材料的帮助或引用都会有很大帮助!我试过通过课本和在线研究,说实话,现在我更加困惑。这里是我的代码: 主营:试图让我的数组列表打印给定的项目

package contactslist; 
import java.util.*; 
import java.io.*; 
public class ContactsList { 
public static void main(String[] args) { 
    Scanner input1 = new Scanner(System.in); 
    int type = 0; 
    ArrayList<Contacts> contacts = new ArrayList<Contacts>(); 
    while(type != 4){ 
    System.out.println("[1] Personal Contact"); 
    System.out.println("[2] Business Contact"); 
    System.out.println("[3] Display Contacts"); 
    System.out.println("[4] to quit"); 
    type = input1.nextInt(); 
    if(type == 4){ 
     System.out.println("Goodbye"); 
     break; 
     } 
    else if (type == 3){ 
     int totalContacts = contacts.size(); 
     for (int i = 0; i < totalContacts; i++){ 
      System.out.print(contacts); 
     } 
    } 
    Scanner inputs = new Scanner(System.in); 
    System.out.println("Please enter a numeric ContactId: "); 
    String contactId = inputs.nextLine(); 
    System.out.println("Please enter First Name: "); 
    String firstName = inputs.nextLine(); 
    if (firstName == null) { 
     break; 
    } 
    System.out.println("Please enter Last Name: "); 
    String lastName = inputs.nextLine(); 
    if (lastName == null) { 
     break; 
    } 
    System.out.println("Please enter Address: "); 
    String address = inputs.nextLine(); 
    System.out.println("Please enter Phone Number: "); 
    String phoneNumber = inputs.nextLine(); 
    System.out.println("Please enter Email Address: "); 
    String emailAddress = inputs.nextLine(); 
    if(type == 1){ 
     System.out.println("Please enter Birthday: "); 
     String dateofBirth = inputs.nextLine(); 
     Contacts personal = new PersonalContact(contactId, firstName, lastName, address, 
phoneNumber, emailAddress, dateofBirth); 
     contacts.add(personal); 
    } 
    else if(type == 2){ 
     System.out.println("Please enter Job Title: "); 
     String jobTitle = inputs.nextLine(); 
     System.out.println("Please enter Organization: "); 
     String organization = inputs.nextLine(); 
     Contacts business = new BusinessContact(contactId, firstName, lastName, 
address, phoneNumber, emailAddress, jobTitle, organization); 
     contacts.add(business); 
    } 
    } 
    } 
    } 

联系人类别:

package contactslist; 
import java.util.*; 
import java.io.*; 
public abstract class Contacts { 
String contactId; 
String firstName; 
String lastName; 
String address; 
String phoneNumber; 
String emailAddress; 
public Contacts(String contactId,String firstName,String lastName, String address, 
String phoneNumber, String emailAddress) 
{ 
    this.contactId = contactId; 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.address = address; 
    this.phoneNumber = phoneNumber; 
    this.emailAddress = emailAddress; 
} 
public void setContactId(String input){ 
    this.contactId = input; 
} 
public String getContactId(){ 
    return contactId; 
} 
public void setFirstName(String input){ 
    this.firstName = input; 
} 
public String getFirstName(){ 
    return firstName; 
} 
public void setLastName(String input){ 
    this.lastName = input; 
} 
public String getLastName(){ 
    return lastName; 
} 
public void setAddress(String input){ 
    this.address = input; 
} 
public String getAddress(){ 
    return address; 
} 
public void setPhoneNumber(String input){ 
    this.phoneNumber = input; 
} 
public String getPhoneNumber(){ 
    return phoneNumber; 
} 
public void setEmailAddress(String input){ 
    this.emailAddress = input; 
} 
public String getEmailAddress(){ 
    return emailAddress;   
} 
public void displayContacts(){ 
    System.out.println("Contact ID: " + contactId + " First Name: " + firstName + " 
Last Name: " + lastName); 
} 
} 

个人亚纲:

package contactslist; 
import java.util.*; 
import java.io.*; 
public class PersonalContact extends Contacts{ 
private String dateofBirth; 
public PersonalContact(String contactId, String firstName, String lastName, String 
address, String phoneNumber, String emailAddress, String dateofBirth){ 
super(contactId, firstName, lastName, address, phoneNumber, emailAddress); 
this.dateofBirth = dateofBirth; 
} 
public void setDateofBirth(String input){ 
this.dateofBirth=input; 
} 
public String getDateofBirth(){ 
return this.dateofBirth; 
} 
@Override 
public void displayContacts(){ 
System.out.print("Personal Contacts: "); 
System.out.println("Contact ID: " + contactId + " First Name: " + firstName + " Last 
Name: " + lastName); 
System.out.println("Address: " + address); 
System.out.println("Phone Number: " + phoneNumber); 
System.out.println("Email Address: " + emailAddress); 
System.out.println("Birthday: " + dateofBirth); 
} 
} 

业务子类:

package contactslist; 
public class BusinessContact extends Contacts{ 
private String jobTitle; 
private String organization; 
public BusinessContact(String contactId, String firstName, String lastName, String 
address, String phoneNumber, String emailAddress, String jobTitle, String organization) 
{ 
super(contactId, firstName, lastName, address, phoneNumber, emailAddress); 
this.jobTitle = jobTitle; 
this.organization = organization; 
} 
public void jobTitle(String input){ 
this.jobTitle = jobTitle; 
} 
public String getjobTitle(){ 
return this.jobTitle; 
} 
public void organization(String input) { 
this.organization = organization; 
} 
public String getOrganization(){ 
return this.organization; 
} 
@Override 
public void displayContacts(){ 
System.out.print("Personal Contacts: "); 
System.out.println("First Name: " + firstName + " Last Name :" + lastName); 
System.out.println("Address: " + address); 
System.out.println("Phone Number: " + phoneNumber); 
System.out.println("Email Address: " + emailAddress); 
System.out.println("Job Title: " + jobTitle); 
System.out.println("Orgnanization: " + organization); 
} 
} 

而这里就是打印,当我选择选项3,显示联系人。

错误:

[[email protected]] 

任何帮助将不胜感激。我疯了,请原谅我的问题。我尝试了一些我用Google搜索过的不同的东西,但我只是没有得到它。有人能指引我正确的方向,还是给我一个很好的参考网站?

回答

1

您需要编写自己的方法来打印该ArrayList。喜欢的东西:

public void printAllContacts(ArrayList<Contacts> contacts) { 
    for (Contacts c : contacts) { 
     c.displayContacts(); 
    } 
} 

和调用,而不是System.out.println(contacts);(Java将只打印有关该对象的信息)选项3.

了解更多关于ArrayList的位置:https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

+0

现在我知道了,非常感谢。现在进入下一部分。 – mbnew