java控制台怎么实现通讯录?
Java控制台实现通讯录
引言
在Java编程中,控制台应用程序是一种常见的练习方式,它可以帮助初学者快速理解Java的基本语法和面向对象的概念。本文将介绍如何使用Java控制台来实现一个简单的通讯录程序。
通讯录功能需求
一个基本的通讯录程序应该具备以下功能:
- 添加联系人
- 删除联系人
- 显示所有联系人
- 搜索联系人
- 退出程序
设计思路
为了实现上述功能,我们可以设计一个Contact
类来存储联系人信息,然后使用一个数组或列表来管理所有的联系人。程序的主逻辑将通过控制台输入来实现。
实现步骤
1. 创建Contact类
首先,我们定义一个Contact
类,用于存储联系人的姓名、电话号码和电子邮件。
public class Contact {
private String name;
private String phoneNumber;
private String email;
public Contact(String name, String phoneNumber, String email) {
this.name = name;
this.phoneNumber = phoneNumber;
this.email = email;
}
// Getter和Setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Name: " + name + ", Phone: " + phoneNumber + ", Email: " + email;
}
}
2. 管理联系人
接下来,我们需要一个类来管理联系人列表,提供添加、删除、显示和搜索联系人的方法。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ContactManager {
private List contacts = new ArrayList<>();
public void addContact(Contact contact) {
contacts.add(contact);
}
public void removeContact(String name) {
contacts.removeIf(contact -> contact.getName().equalsIgnoreCase(name));
}
public void displayContacts() {
for (Contact contact : contacts) {
System.out.println(contact);
}
}
public void searchContact(String name) {
for (Contact contact : contacts) {
if (contact.getName().equalsIgnoreCase(name)) {
System.out.println(contact);
return;
}
}
System.out.println("Contact not found.");
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ContactManager manager = new ContactManager();
boolean running = true;
while (running) {
System.out.println("1. Add Contact");
System.out.println("2. Remove Contact");
System.out.println("3. Display Contacts");
System.out.println("4. Search Contact");
System.out.println("5. Exit");
System.out.print("Enter your choice: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 处理nextInt后的换行符
switch (choice) {
case 1:
System.out.print("Enter name: ");
String name = scanner.nextLine();
System.out.print("Enter phone number: ");
String phoneNumber = scanner.nextLine();
System.out.print("Enter email: ");
String email = scanner.nextLine();
manager.addContact(new Contact(name, phoneNumber, email));
break;
case 2:
System.out.print("Enter name to remove: ");
String removeName = scanner.nextLine();
manager.removeContact(removeName);
break;
case 3:
manager.displayContacts();
break;
case 4:
System.out.print("Enter name to search: ");
String searchName = scanner.nextLine();
manager.searchContact(searchName);
break;
case 5:
running = false;
System.out.println("Exiting program...");
break;
default:
System.out.println("Invalid choice, please try again.");
}
}
scanner.close();
}
}
3. 测试程序
编写完程序后,应该对其进行测试,确保所有功能都能正常工作。
结语
通过上述步骤,我们实现了一个简单的Java控制台通讯录程序。这个程序可以作为学习Java编程和面向对象设计的一个很好的练习。随着技能的提升,可以添加更多功能,如联系人分组、持久化存储等。
注意事项
- 确保输入数据的有效性,避免程序因非法输入而崩溃。
- 考虑使用异常处理来增强程序的健壮性。
- 随着联系人数量的增加,考虑使用更高效的数据结构来存储和管理联系人。