Proje tasarımı
- Java kursu
- İleri seviye
- Ders 73/82
- 6 dk
İleri proje iskeletini tasarlarsın.
Proje: Hesap defteri
Bu 5 derslik projede bir hesap defteri (ledger) uygulaması yapacaksın. Her ders bir parça ekler; son derste tüm parçaları birleştirirsin.
Projede ileri düzey konuları bir arada kullanacaksın:
Streamile filtreleme ve gruplamaExecutorServiceile eşzamanlı toplam@Testile birim testi
Model sınıfı Transaction: bir kategori ve bir tutar tutar. Her ders önceki dersin çözümünü başlangıç kodu olarak içerir; böylece uygulama adım adım büyür.
Proje akışı
Proje dört katmandan oluşur. Her katman bir öncekinin çözümünü kullanır:
- Model:
Transactionsınıfı veArrayList. - Stream: filtreleme ve
groupingBy. - Concurrent:
ExecutorServiceile toplam hesaplama. - Test:
LedgerServiceTestile@Test.
Son derste tüm katmanlar main içinde birlikte çalışır. Çıktılar deterministik olduğundan beklenen çıktı her seferinde aynıdır.
Uygulama Modeli ve listeyi tanımla
Transaction sınıfını tanımla; String category ve int amount alanları ve bir kurucu içersin. Main sınıfında ArrayList<Transaction> ledger tanımla; iki kayıt ekle (market 120, fuel 80). for-each ile her kaydı kategori + " " + tutar biçiminde yazdır.
Başlangıç kodu
import java.util.ArrayList;
// Transaction sınıfını tanımla (String category, int amount ve kurucu)
public class Main {
public static void main(String[] args) {
// ArrayList<Transaction> ledger tanımla
// iki kayıt ekle (market 120, fuel 80)
// for-each ile yazdır
}
}Örnek çözüm
import java.util.ArrayList;
class Transaction {
String category;
int amount;
Transaction(String category, int amount) {
this.category = category;
this.amount = amount;
}
}
public class Main {
public static void main(String[] args) {
ArrayList<Transaction> ledger = new ArrayList<>();
ledger.add(new Transaction("market", 120));
ledger.add(new Transaction("fuel", 80));
for (Transaction t : ledger) {
System.out.println(t.category + " " + t.amount);
}
}
}Beklenen çıktı
market 120 fuel 80
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hesap defteri projesinin ilk adı ne olmalı?
- Model ve temel listeyi tanımlamak Doğru cevap
- Concurrent katmanı eklemek
- Test katmanını yazmak
- Stream ile gruplamak
Açıklama: Önce model ve temel liste tanımlanır; diğer katmanlar bunun üzerine kurulur.
2 Model sınıfının kurucusunu tamamla
class Transaction {
String category;
int amount;
Transaction(String category, int amount) {
this.category = category;
this.amount = amount;
}
}
Transaction t = new Transaction("market", 120____;
class Transaction {
String category;
int amount;
Transaction(String category, int amount) {
this.category = category;
this.amount = amount;
}
}
Transaction t = new Transaction("market", 120);
Açıklama: Kurucu çağrısı parantez ve noktalı virgülle biter.
3 Proje katmanlarını eşleştir
| Kavram | Anlamı |
|---|---|
Model |
Transaction sınıfı |
Stream |
Filtreleme ve gruplama |
Concurrent |
ExecutorService ile toplam |
Test |
@Test ile birim testi |