如何在 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);
}
}
我想制作一个任务和待办事项程序。我把代码写在了分开的 类 中。 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);
}
}