Görev tamamlama
- Java kursu
- Başlangıç
- Ders 86/116
- 6 dk
completeTask ile durumu güncellersin.
Görev tamamlama: completeTask
Şimdi bir görevi tamamlandı olarak işaretleyen completeTask(int index) metodunu ekleyeceğiz. Bu metot, ilgili indeksteki görevin done alanını true yapar.
void completeTask(int index) {
tasks.get(index).done = true;
}Burada tasks.get(index) ile o indeksteki Task nesnesini alır, sonra .done = true ile durumunu güncelleriz. Nesne referansı aynı kaldığı için değişiklik listedeki görevde kalıcı olur.
Geçersiz indeks tehlikesi
Eğer completeTask'e listede olmayan bir indeks geçersen, tasks.get(index) bir IndexOutOfBoundsException fırlatır. Bunu önlemek için metodun başında sınır kontrolü yapabilirsin.
void completeTask(int index) {
if (index < 0 || index >= tasks.size()) return;
tasks.get(index).done = true;
}Şimdilik bu kontrolü eklemiyoruz; ama gerçek bir uygulamada kullanıcıdan gelen indeksi her zaman doğrulamak iyi bir uygulamadır.
Uygulama completeTask metodunu yaz
TodoList içine void completeTask(int index) metodunu tanımla; gövde tasks.get(index).done = true yapsın. main içinde iki görev ekle, list.completeTask(0) çağır ve list.listTasks() ile yazdır.
Başlangıç kodu
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
TodoList list = new TodoList();
list.addTask("Alışveriş");
list.addTask("Ödev");
// İlk görevi tamamlandı olarak işaretle
// Görevleri listele
}
}
class Task {
String title;
boolean done;
Task(String title) {
this.title = title;
this.done = false;
}
public String toString() {
return (done ? "[x] " : "[ ] ") + title;
}
}
class TodoList {
ArrayList<Task> tasks = new ArrayList<>();
void addTask(String title) {
tasks.add(new Task(title));
}
void listTasks() {
for (Task t : tasks) {
System.out.println(t);
}
}
// completeTask(int index) metodunu tanımla: o indeksteki görevi tamamla
}Örnek çözüm
// TodoList içinde:
void completeTask(int index) {
tasks.get(index).done = true;
}
// main içinde:
list.completeTask(0);
list.listTasks();Beklenen çıktı
[x] Alışveriş [ ] Ödev
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 tasks.get(0) ne döner?
- İlk Task nesnesi
- İlk görevin başlığı
- boolean done Doğru cevap
- 0 indeksi
Açıklama: get(0) ilk Task nesnesinin kendisini döner.
2 Çağrı ve anlamı eşleştir
| Kavram | Anlamı |
|---|---|
tasks.get(0) |
İlk görev nesnesi |
tasks.get(0).done = true |
İlk görevi tamamla |
tasks.size() |
Görev sayısı |
tasks.add(new Task(...)) |
Yeni görev ekle |
3 Boşluğu doldur: görevi tamamla
void completeTask(int index) {
tasks.____(index).done = true;
}
void completeTask(int index) {
tasks.get(index).done = true;
}
Açıklama: tasks.get(index).done = true görevi tamamlar.