首页 > Java > java教程 > 正文

如何在Java中开发Todo待办事项应用

P粉602998670
发布: 2025-09-23 14:27:01
原创
820人浏览过
首先设计Todo类封装任务属性,包括ID、标题、完成状态和创建时间,并提供相应方法;接着实现TodoService类管理任务的增删改查,使用ArrayList存储数据并自动生成ID;然后通过Scanner创建命令行交互界面,支持用户添加、查看、标记完成和删除任务;最后可扩展文件持久化、搜索、优先级、提醒等功能。该应用帮助掌握Java面向对象编程与基础数据管理。

如何在java中开发todo待办事项应用

开发一个Todo待办事项应用是学习Java面向对象编程和基础数据管理的好项目。你可以从命令行版本开始,逐步扩展到图形界面或Web应用。以下是实现一个基础但完整的命令行Todo应用的步骤和关键代码结构。

1. 设计Todo实体类

每个待办事项应包含基本信息,如ID、任务内容、是否完成和创建时间。

  • 使用一个Todo类来封装任务属性
  • 提供构造函数、getter/setter和toString方法
public class Todo {
    private int id;
    private String title;
    private boolean completed;
    private long createdAt;

    public Todo(int id, String title) {
        this.id = id;
        this.title = title;
        this.completed = false;
        this.createdAt = System.currentTimeMillis();
    }

    // getter 和 setter 方法
    public int getId() { return id; }
    public String getTitle() { return title; }
    public boolean isCompleted() { return completed; }
    public void setCompleted(boolean completed) { this.completed = completed; }

    @Override
    public String toString() {
        return "[" + id + "] " + title + " - " + (completed ? "已完成" : "未完成");
    }
}
登录后复制

2. 实现Todo管理服务

使用ArrayList存储任务,提供增删改查功能。

  • 添加任务:自动生成ID
  • 列出所有任务
  • 标记任务为完成
  • 删除任务
import java.util.ArrayList;
import java.util.List;

public class TodoService {
    private List<Todo> todos = new ArrayList<>();
    private int nextId = 1;

    public void addTodo(String title) {
        todos.add(new Todo(nextId++, title));
    }

    public void listTodos() {
        if (todos.isEmpty()) {
            System.out.println("暂无待办事项。");
            return;
        }
        for (Todo todo : todos) {
            System.out.println(todo);
        }
    }

    public void markAsDone(int id) {
        for (Todo todo : todos) {
            if (todo.getId() == id) {
                todo.setCompleted(true);
                System.out.println("已标记为完成:" + todo.getTitle());
                return;
            }
        }
        System.out.println("未找到ID为 " + id + " 的任务。");
    }

    public void deleteTodo(int id) {
        boolean removed = todos.removeIf(todo -> todo.getId() == id);
        if (removed) {
            System.out.println("任务已删除。");
        } else {
            System.out.println("未找到该任务。");
        }
    }
}
登录后复制

3. 创建用户交互界面(命令行)

使用Scanner读取用户输入,提供简单菜单操作。

AppMall应用商店
AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56
查看详情 AppMall应用商店

立即学习Java免费学习笔记(深入)”;

import java.util.Scanner;

public class TodoApp {
    public static void main(String[] args) {
        TodoService service = new TodoService();
        Scanner scanner = new Scanner(System.in);
        boolean running = true;

        System.out.println("=== Todo 应用 ===");

        while (running) {
            System.out.println("\n请选择操作:");
            System.out.println("1. 添加任务");
            System.out.println("2. 查看所有任务");
            System.out.println("3. 标记任务为完成");
            System.out.println("4. 删除任务");
            System.out.println("5. 退出");

            int choice = scanner.nextInt();
            scanner.nextLine(); // 消费换行符

            switch (choice) {
                case 1:
                    System.out.print("请输入任务内容:");
                    String title = scanner.nextLine();
                    service.addTodo(title);
                    break;
                case 2:
                    service.listTodos();
                    break;
                case 3:
                    System.out.print("请输入要完成的任务ID:");
                    int doneId = scanner.nextInt();
                    service.markAsDone(doneId);
                    break;
                case 4:
                    System.out.print("请输入要删除的任务ID:");
                    int delId = scanner.nextInt();
                    service.deleteTodo(delId);
                    break;
                case 5:
                    running = false;
                    System.out.println("再见!");
                    break;
                default:
                    System.out.println("无效选择,请重试。");
            }
        }
        scanner.close();
    }
}
登录后复制

4. 扩展建议

基础功能完成后,可以逐步增强应用能力。

  • 持久化:将任务保存到文件(如JSON或CSV)
  • 搜索功能:按关键词查找任务
  • 优先级支持:为任务添加高/中/低优先级
  • 日期提醒:支持截止时间
  • 图形界面:使用Swing或JavaFX
  • Web版本:结合Spring Boot开发REST API

基本上就这些。从这个简单的控制台应用出发,你能掌握Java核心语法、集合操作和基本设计思路,为进一步开发打下坚实基础。

以上就是如何在Java中开发Todo待办事项应用的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号