如何在Java中实现任务管理小工具

答案:该Java任务管理工具通过Task类封装任务数据,包含ID、标题、描述、状态和创建时间,使用TaskManager类管理任务的增删改查,借助ArrayList存储任务列表,提供命令行菜单实现用户交互,支持添加、查看、标记完成和删除任务,结构清晰,适合学习面向对象编程与基础集合操作。

在Java中实现一个任务管理小工具,核心是围绕任务的创建、查看、更新和删除操作。通过简单的面向对象设计和基础的数据结构,就能快速搭建出一个实用的命令行任务管理器。

定义任务类(Task)

每个任务应包含基本信息,如ID、标题、描述、状态(待办/完成)和创建时间。

使用一个普通类来封装任务数据:

public class Task {
    private int id;
    private String title;
    private String description;
  

private boolean completed; private long createdAt;
public Task(int id, String title, String description) {
    this.id = id;
    this.title = title;
    this.description = description;
    this.completed = false;
    this.createdAt = System.currentTimeMillis();
}

// Getter 和 Setter 方法
public int getId() { return id; }
public String getTitle() { return title; }
public String getDescription() { return description; }
public boolean isCompleted() { return completed; }

public void setCompleted(boolean completed) {
    this.completed = completed;
}

@Override
public String toString() {
    return "ID: " + id + " | " + title + " | " + description +
           " | " + (completed ? "已完成" : "待办") +
           " | 创建时间: " + new java.util.Date(createdAt);
}

}

任务管理器类(TaskManager)

负责任务的增删改查,使用ArrayList存储任务列表。

关键方法包括添加任务、列出所有任务、标记完成、删除任务。

import java.util.ArrayList;
import java.util.Scanner;

public class TaskManager { private ArrayList tasks = new ArrayList<>(); private int nextId = 1; private Scanner scanner = new Scanner(System.in);

public void addTask() {
    System.out.print("输入任务标题: ");
    String title = scanner.nextLine();
    System.out.print("输入任务描述: ");
    String desc = scanner.nextLine();
    Task task = new Task(nextId++, title, desc);
    tasks.add(task);
    System.out.println("任务已添加!");
}

public void viewTasks() {
    if (tasks.isEmpty()) {
        System.out.println("暂无任务。");
        return;
    }
    for (Task task : tasks) {
        System.out.println(task);
    }
}

public void markTaskAsCompleted() {
    System.out.print("输入要完成的任务ID: ");
    int id = Integer.parseInt(scanner.nextLine());
    for (Task task : tasks) {
        if (task.getId() == id) {
            task.setCompleted(true);
            System.out.println("任务已标记为完成。");
            return;
        }
    }
    System.out.println("未找到该ID的任务。");
}

public void deleteTask() {
    System.out.print("输入要删除的任务ID: ");
    int id = Integer.parseInt(scanner.nextLine());
    tasks.removeIf(task -> task.getId() == id)
        ? System.out.println("任务已删除。")
        : System.out.println("未找到该ID的任务。");
}

}

主程序入口与菜单循环

提供用户交互界面,持续接收指令直到退出。

public class Main {
    public static void main(String[] args) {
        TaskManager manager = new TaskManager();
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("\n--- 任务管理工具 ---");
            System.out.println("1. 添加任务");
            System.out.println("2. 查看所有任务");
            System.out.println("3. 标记任务为完成");
            System.out.println("4. 删除任务");
            System.out.println("5. 退出");
            System.out.print("请选择操作: ");
        String choice = scanner.nextLine();
        switch (choice) {
            case "1": manager.addTask(); break;
            case "2": manager.viewTasks(); break;
            case "3": manager.markTaskAsCompleted(); break;
            case "4": manager.deleteTask(); break;
            case "5":
                System.out.println("再见!");
                return;
            default:
                System.out.println("无效选择,请重试。");
        }
    }
}

}

这个小工具不依赖外部库,适合学习Java基础语法、集合类和面向对象编程。后续可扩展功能,比如保存到文件、按状态筛选、设置截止时间等。基本上就这些,简单但够用。