Birleştirme
- Dart kursu
- Başlangıç
- Ders 116/116
- 6 dk
Tüm parçaları birleştirerek çalışan bir final uygulaması yazarsın.
Birleştirme
Son derste tüm parçaları birleştiriyoruz: Library sınıfı, Book sınıfı, kitap listesi ve try/catch ile hata yönetimi. Çalışan bir kütüphane konsol uygulaması elde edeceğiz; tüm kitapları yazdıracak ve hata durumunda nazik mesaj verecek.
Bu, başlangıç seviyesinin tüm temel kavramlarını gerçek bir görevde birleştirir: sınıf tanımı, kurucu, alan erişimi, List ve for döngüsü, try/catch ile dayanıklılık. Bu deseni ilerideki projelerde tekrar tekrar göreceksin; bu yüzden şimdi sağlam öğrenmek önemli.
Çalışan uygulama
Aşağıdaki kodda sınıflar, liste ve try/catch zaten tanımlı. Eksik olan tek parça, tüm kitapları yazdıran for döngüsü. Bu döngüyü try bloğundan önce ekleyeceksin; böylece önce tüm kitaplar listelenir, sonra liste dışı erişim denenir.
for (final book in books) { print("Kitap: ${book.title}"); } yazdığında her kitabın başlığı ekrana gelir. try/catch zaten yerinde; böylece uygulama hem listeleme hem de hata yakalama yapar. Bu, başlangıç seviyesinin küçük ama tamam bir örneğidir.
Uygulama Çalışan kütüphane
Aşağıdaki kodda sınıflar, liste ve try/catch zaten tanımlı. main içinde try bloğundan önce bir for döngüsü ekle: for (final book in books) { print("Kitap: ${book.title}"); }. Böylece önce tüm kitaplar yazdırılır, sonra liste dışı erişim denenir.
Başlangıç kodu
class Library {
String name;
Library(this.name);
void info() {
print("Kütüphane: $name");
}
}
class Book {
String title;
Book(this.title);
}
void main() {
final lib = Library("Şehir");
lib.info();
final b = Book("Suç ve Ceza");
print("Yeni kitap: ${b.title}");
final books = <Book>[Book("Suç ve Ceza"), Book("Sefiller")];
print("Sayı: ${books.length}");
print("İlk: ${books[0].title}");
// for ile tüm kitapları yazdır (try bloğundan önce)
try {
print(books[5].title);
} catch (e) {
print("kitap bulunamadı");
}
}Örnek çözüm
class Library {
String name;
Library(this.name);
void info() {
print("Kütüphane: $name");
}
}
class Book {
String title;
Book(this.title);
}
void main() {
final lib = Library("Şehir");
lib.info();
final b = Book("Suç ve Ceza");
print("Yeni kitap: ${b.title}");
final books = <Book>[Book("Suç ve Ceza"), Book("Sefiller")];
print("Sayı: ${books.length}");
print("İlk: ${books[0].title}");
for (final book in books) {
print("Kitap: ${book.title}");
}
try {
print(books[5].title);
} catch (e) {
print("kitap bulunamadı");
}
}Beklenen çıktı
Kütüphane: Şehir Yeni kitap: Suç ve Ceza Sayı: 2 İlk: Suç ve Ceza Kitap: Suç ve Ceza Kitap: Sefiller kitap bulunamadı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 for döngüsü bağlacı
for (final book ____ books) {
print("Kitap: ${book.title}");
}
for (final book in books) {
print("Kitap: ${book.title}");
}
Açıklama: for-in liste gezme deyimidir.
2 Bu projede for döngüsü ne yapar?
for (final book in books) {
print("Kitap: ${book.title}");
}- Tüm kitapların başlığını yazdırır Doğru cevap
- Listeye kitap ekler
- Hatayı yakalar
- Kütüphane adını değiştirir
Açıklama: for döngüsü tüm kitapların başlığını yazdırır.
3 Final parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
class |
nesne tanımlar |
List<Book> |
kitapları toplar |
for |
listeyi gezer |
try/catch |
dayanıklılık katar |