Консольное приложение для управления задачами (To-Do List) на Java.
Основные функции
- ✔️ Добавление новых задач: Простой способ ввести ваши идеи и деловые поручения.
- ✔️ Просмотр задач: Удобный обзор всех ваших текущих заданий.
- ✔️ Завершение задач: Легко выполняйте свои задачи и отмечайте их как завершенные.
- ✔️ Удаление ненужных задач: Удаляйте старые или ненужные задачи одним нажатием кнопки.
Класс Task. Этот класс представляет собой основной объект в приложении To-Do List, который хранит информацию о каждой задаче. Важно понимать, как он устроен и как используется в приложении.
Объяснение компонентов класса Task
-
Поля класса:
- private String description; — строка, которая будет содержать описание задачи.
- private boolean isCompleted; — логическая переменная, которая показывает, завершена задача или нет.
-
Конструктор:
- public Task(String description): это конструктор, который принимает одно значение — описание задачи. Во время создания нового объекта Task это описание будет присвоено полю description, а поле isCompleted будет инициализировано значением false, что означает, что задача на момент создания не завершена.
-
Методы доступа:
- public String getDescription() — геттер, который возвращает описание задачи.
- public boolean isCompleted() — геттер, который возвращает статус завершенности задачи.
-
Метод для завершения задачи:
- public void completeTask() — этот метод используется для изменения статуса задачи на завершенный. Он просто устанавливает значение isCompleted в true.
-
Переопределенный метод toString():
- @Override public String toString() — этот метод возвращает строковое представление объекта. В данном случае он формирует строку, которая включает статус завершенности в виде [X] (для завершенной задачи) или [ ] (для незавершенной) перед описанием задачи. Это позволяет удобно выводить задачи на экран.
Как используется класс Task в приложении To-Do List
- Когда пользователь добавляет новую задачу в приложение, создается новый объект Task с описанием, заданным пользователем.
- Объект Task хранится в списке tasks внутри класса TodoApp.
- Когда нужно вывести список задач, приложение вызывает метод toString() для каждого объекта Task, чтобы правильно отобразить статус и описание задачи.
- Когда пользователь завершает задачу, вызывается метод completeTask(), чтобы обновить статус задачи.
Объяснение каждого компонента класса TodoApp
-
Импорт и инициализация:
- import java.util.ArrayList; и import java.util.Scanner; — импортирование необходимых библиотек:
- ArrayList для хранения списка задач.
- Scanner для получения ввода от пользователя в консоли.
- import java.util.ArrayList; и import java.util.Scanner; — импортирование необходимых библиотек:
-
Поля класса:
- private ArrayList tasks; — список для хранения объектов Task.
- private Scanner scanner; — объект для считывания ввода с консоли.
-
Конструктор:
- public TodoApp() — конструктор, который инициализирует tasks как пустой список ArrayList и scanner для считывания ввода.
-
Метод start():
- Главный метод, который запускает приложение. Он отображает меню и обрабатывает выбор пользователя через цикл while (true).
-
Обработка пользовательского ввода:
- Внутри while происходит считывание выбора пользователя и обработка выбора через switch.
- Если пользователь выбрал добавление задачи, вызывается метод addTask().
- Если выбрано отображение задач, вызывается метод viewTasks(), и так далее.
- Внутри while происходит считывание выбора пользователя и обработка выбора через switch.
-
Методы управления задачами:
- addTask(String description) — создает новую задачу с указанным описанием и добавляет ее в список.
- viewTasks() — отображает все текущие задачи. Использует toString() из класса Task для формата вывода.
- completeTask() — позволяет пользователю завершить задачу. Вызывает метод completeTask() объекта Task, основываясь на введенном пользователем номере задачи.
- removeTask() — позволяет удалять задачи из списка на основе номера, введенного пользователем.
-
Метод main():
- Точка входа в приложение. Создает экземпляр TodoApp и запускает его с помощью метода start().