如何在 Java 中制作任务和待办事项程序?

How to make a Task and Todo Program in Java?

我想制作一个任务和待办事项程序。我把代码写在了分开的 类 中。 class Task 将代表需要完成的单个项目。

public class Task {
private String task;
private int priority;
private int workload;

public Task(String task, int priority, int workload) {
    this.task = task; // Description of the task
    this.priority = priority; // 1 = very important, 2 = important, 3 = unimportant, 4 = after learn
                              // Portuguese
    this.workload = workload; // amount of time to complete the task
}

public String getPriority(String translation) {
    if (priority == 1) {
        translation = "very important";
    }
    if (priority == 2) {
        translation = " important";
    }
    if (priority == 3) {
        translation = "unimportant";
    }
    if (priority == 4) {
        translation = " after learn German";
    }
    return translation;
}

public String toString() {
    String translation = "";
    return task + " takes " + workload + " minutes and has priority " + getPriority(translation);
}
}

class Todo 将组织所有任务。

public class Todo {
ArrayList<String> Todo = new ArrayList<>();

public void addTask(String description, int priority, int minutes) {
    if (priority > 4 || priority < 1) {
        System.out.println(description + " has invalid priority ");
    }
    if (minutes < 0) {
        System.out.println(description + " has invalid workload ");
    }
    Todo.add(Task.class.getName());
}

public void getTodoList() {
    Todo.forEach(item->System.out.println(Task.class.getName().toString()));
}

public void print() {
    System.out.println("Todo:");
    System.out.println("-----");
    getTodoList();
    if (Todo == null) {
        System.out.println("You're all done for today! #TodoZero");
    }
}

public static void main(String[] args) {
    Task task;
    Todo todo;
    todo = new Todo();
    todo.addTask("Go to gym", 2, 60);
    todo.addTask("Read book", 1, 45);
    todo.print();
    System.out.print("");
}
}

输出:

Todo:
-----
Task
Task

但问题是 Todo.print() method 无法打印已添加到 Todo 的任务列表。预期的输出应该是这样的:

Go to gym takes 60 minutes and has priority important
Read book takes 45 minutes and has priority very important

你的输出是正确的。您没有将任务添加到列表中,而是添加了 class 名称。在 todo.add()

中调用 Task 的构造函数

您的 Todo 中需要进行以下更改 Class 以获得所需的输出

   ArrayList<Task> Todo = new ArrayList<>(); // ArrayList of Tasks

     public void addTask(String description, int priority, int minutes) {
          if (priority > 4 || priority < 1) {
             System.out.println(description + " has invalid priority ");
          }

          if (minutes < 0) {
             System.out.println(description + " has invalid workload ");
         }
         Todo.add(new Task(description, priority,minutes));   // Add Task
     }

     
     public void getTodoList() {
        // Iterate over Todo ArrayList
         for (Task task : Todo){
               System.out.println(task);
            }
     }