Java通讯录程序

通讯录是一个非常常见的应用程序,它可以帮助我们记录和管理联系人的信息,随时随地方便快捷地查找和编辑。在本文中,我们将学习如何使用Java编写一个简单的通讯录程序。

功能需求

在开始编写代码之前,我们需要先明确程序的功能需求。通讯录程序应该具备以下基本功能:

  1. 添加联系人:可以输入联系人的姓名、电话号码、电子邮件等信息,并将其保存到通讯录中。
  2. 显示联系人列表:可以查看通讯录中的所有联系人,并显示其姓名和电话号码。
  3. 编辑联系人:可以根据姓名或电话号码查找并编辑指定的联系人信息。
  4. 删除联系人:可以根据姓名或电话号码查找并删除指定的联系人信息。

数据模型设计

在开始编写代码之前,我们需要先设计通讯录的数据模型。在本例中,我们将使用一个简单的类来表示联系人,该类具有以下属性:

  • 姓名(name):字符串类型
  • 电话号码(phone):字符串类型
  • 电子邮件(email):字符串类型

我们可以使用Java的类来实现这个数据模型,代码如下所示:

public class Contact {
    private String name;
    private String phone;
    private String email;

    public Contact(String name, String phone, String email) {
        this.name = name;
        this.phone = phone;
        this.email = email;
    }

    // Getter and setter methods

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

用户界面设计

在编写程序之前,我们需要先设计程序的用户界面。在本例中,我们将使用控制台作为用户界面。我们可以使用Java的Scanner类来接收用户的输入,并使用System.out.println来打印输出。

用户界面设计如下所示:

import java.util.Scanner;

public class ConsoleUI {
    private Scanner scanner;

    public ConsoleUI() {
        scanner = new Scanner(System.in);
    }

    public void showMenu() {
        System.out.println("---------- 通讯录程序 ----------");
        System.out.println("1. 添加联系人");
        System.out.println("2. 显示联系人列表");
        System.out.println("3. 编辑联系人");
        System.out.println("4. 删除联系人");
        System.out.println("5. 退出程序");
        System.out.println("---------------------------------");
    }

    public int getChoice() {
        System.out.print("请输入选项:");
        return scanner.nextInt();
    }

    // Other methods for getting user input or displaying output
}

主程序逻辑

现在我们可以开始编写通讯录程序的主要逻辑。我们将使用一个ArrayList来保存所有的联系人,并使用一个while循环来持续接收用户的操作。

程序的主程序逻辑如下所示:

import java.util.ArrayList;

public class AddressBook {
    private ArrayList<Contact> contacts;
    private ConsoleUI ui;

    public AddressBook() {
        contacts = new ArrayList<>();
        ui = new ConsoleUI();
    }

    public void run() {
        int choice = 0;

        while (choice != 5) {
            ui.showMenu();
            choice = ui.getChoice();

            switch (choice) {
                case 1:
                    addContact();
                    break;
                case 2:
                    showContactList();
                    break;
                case 3:
                    editContact();
                    break;
                case 4:
                    deleteContact();
                    break;
                case 5:
                    System.out.println("程序已退出。");
                    break;
                default:
                    System.out.println("无效选项,请重新输入。");
                    break;
            }
        }
    }

    public void addContact() {
        System.out.print("请输入姓名:");
        String name = ui.getStringInput();
        System.out.print("请输入电话号码:");
        String phone = ui.getStringInput();
        System.out.print("请输入电子邮件:");
        String email = ui.getStringInput();

        Contact contact = new Contact(name, phone, email);
        contacts.add(contact);

        System.out.println("联系人已添加。");
    }

    public void showContactList() {
        if (contacts.isEmpty()) {
            System