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

开发一个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 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读取用户输入,提供简单菜单操作。
Android文档-开发者指南-第一部分:入门-中英文对照版 Android提供了丰富的应用程序框架,它允许您在Java语言环境中构建移动设备的创新应用程序和游戏。在左侧导航中列出的文档提供了有关如何使用Android的各种API来构建应用程序的详细信息。第一部分:Introduction(入门) 0、Introduction to Android(引进到Android) 1、Application Fundamentals(应用程序基础) 2、Device Compatibility(设备兼容性) 3、
立即学习“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核心语法、集合操作和基本设计思路,为进一步开发打下坚实基础。









