मैं एक कार्य और टोडो कार्यक्रम बनाना चाहता हूं। मैं अलग वर्गों में कोड लिखा है। 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 उन कार्यों की सूची को प्रिंट नहीं कर सकता है जिन्हें टोडो में जोड़ा गया है। अपेक्षित आउटपुट इस तरह होना चाहिए:

Go to gym takes 60 minutes and has priority important
Read book takes 45 minutes and has priority very important
0
HeartOfHearts 23 अक्टूबर 2020, 22:06

2 जवाब

सबसे बढ़िया उत्तर

वांछित आउटपुट प्राप्त करने के लिए आपके 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);
            }
     }


0
abhijit gupta 23 अक्टूबर 2020, 22:22

आपका आउटपुट सही है। आप अपनी सूची में कार्य नहीं जोड़ते हैं, आप वर्ग का नाम जोड़ते हैं। कार्य के निर्माता को todo.add () में कॉल करें

0
J.Doe 23 अक्टूबर 2020, 22:25