Java temelleri
Kurumsal sistemlerde yaygın Java’yı sıfırdan öğrenir; değişkenden nesne yönelimli tasarıma ve güvenli hata yönetimine ilerlersin.
Seviye 101 · 26 ders · 21 pratik lab
Dersler
Başlarken
- JDK, JVM ve ilk program: javac ve java: Java’nın derlenip sanal makinede nasıl çalıştığını anlar, javac ve java komutlarıyla ilk programını çalıştırırsın.
- Değişkenler ve ilkel türler: int, double, boolean ve char gibi türleri tanır, her birinin ne kadar yer tuttuğunu ve ne için uygun olduğunu bilirsin.
- İşleçler, tür dönüşümü ve taşma: Aritmetik ve mantıksal işleçleri kullanır, türler arası dönüşümü ve sayıların sınırı aşınca ne olduğunu öğrenirsin.
- String, StringBuilder ve metin işleme: Metni değişmez nesne olarak anlar, birleştirme, bölme ve arama yöntemlerini kullanır, döngüde StringBuilder seçersin.
- Scanner ile klavye girdisi okumak: Kullanıcıdan sayı ve metin okuyan küçük konsol programları yazarsın.
- Kısa görev: alışveriş fişi yazdıran program
Akış denetimi ve veri
- Koşullar: if, else ve switch: Programın karar vermesini if-else zincirleri ve switch ifadeleriyle yazar, karşılaştırma tuzaklarını bilirsin.
- Döngüler: for, while, do-while: Tekrarlayan işleri uygun döngüyle yazar, break ve continue ile akışı yönetirsin.
- Metotlar: parametre, dönüş değeri ve aşırı yükleme: Kodunu yeniden kullanılabilir metotlara böler, aynı adı farklı parametrelerle yükleyebilirsin.
- Diziler ve çok boyutlu diziler: Sabit boyutlu dizileri oluşturur, dolaşır ve sınır dışına taşan erişimin neden hata verdiğini görürsün.
- ArrayList: büyüyebilen listeler: Eleman sayısı değişen verileri ArrayList ile tutar, ekler, siler ve gezersin.
- Kısa görev: not listesinden istatistik çıkaran program
Nesne yönelimli temeller
- Sınıflar, nesneler ve kurucular: Kendi sınıfını yazar, kurucuyla nesne üretir ve nesneler arasındaki ilişkiyi kurarsın.
- Kapsülleme: erişim belirleyicileri ve getter/setter: Alanları private yapıp erişimi kontrollü metotlarla verir, geçersiz değerleri nesne içinde engellersin.
- static üyeler ve final ile sabitler: Sınıfa ait ortak alan ve metotları kullanır, değişmemesi gereken değerleri final ile korursun.
- Miras ve super: Bir sınıfı başka sınıftan türetir, ortak davranışı üst sınıfta toplar ve super ile ona erişirsin.
- Çok biçimlilik ve metot geçersiz kılma: Üst sınıf türündeki değişkenle farklı alt sınıf nesnelerini kullanır, @Override ile davranışı değiştirirsin.
- Arayüzler ve soyut sınıflar: Sınıfların uyması gereken sözleşmeyi arayüzle tanımlar ve soyut sınıfla arayüz arasındaki farkı seçersin.
- Kısa görev: doğrulamalı banka hesabı sınıfları
Hata yönetimi, dosyalar ve proje
- Hata yönetimi: try, catch, finally: Hataları yakalar, temizlik işlerini finally ile garantiler ve hata mesajlarını okumayı öğrenirsin.
- Denetlenen hatalar ve özel hata sınıfları: Denetlenen ve denetlenmeyen hatalar arasındaki farkı bilir, kendi hata sınıfını yazarsın.
- Dosya okumak ve yazmak: java.nio.file ve try-with-resources: Dosyaları Files ve Path ile okuyup yazar, kaynakları try-with-resources ile otomatik kapatırsın.
- Paketler ve Maven ile proje yapısı: Kodu paketlere ayırır, Maven ile projeyi derler ve bağımlılık eklemeyi öğrenirsin.
- Girdi doğrulama ve güvenli hata mesajları: Dışarıdan gelen veriyi işlemeden önce doğrular, hata mesajlarında hassas bilgi sızdırmazsın.
- Kısa görev: hatalı satırları atlayıp raporlayan CSV yükleyici
Bitirme
- Bitirme görevi: günlük satırlarını özetleyen komut satırı programı: Öğrendiklerini birleştirip bir günlük dosyasını okuyan, olay türlerini sayan ve özet yazan Java programı geliştirirsin.
Pratik lablar
- Bahşişli hesabı kuruş duyarlığıyla paylaştırmak: Toplam tutarı ve bahşiş oranını alıp kişi başı payı kuruş duyarlığıyla hesaplayan metodu yaz.
- Tür dönüşümünde kaybolan ondalığı bulmak: Tam sayı bölmesi ve yanlış yerde yapılan dönüşüm yüzünden hep aşağı yuvarlanan ortalama hesabını düzelt.
- Sessiz taşmayı Math.addExact ile yakalamak: Mavikaya Lojistik'in yıllık kilometre toplamında int taşmasıyla eksiye dönen hesabı long ve Math.addExact ile düzelt; sınır değer testlerini geç.
- Ad soyaddan baş harfleri üretmek: Fazla boşluklu tam addan baş harfleri büyük harfle döndüren metodu String metotlarıyla yaz.
- Fiş satırlarını StringBuilder ile kurmak: Döngüde + ile dizgi biriktiren fiş üreticisini StringBuilder ve String.format ile hizalı sütunlar üretecek şekilde yeniden yaz.
- Scanner'da atlanan satır hatasını onarmak: nextInt sonrası nextLine'ın boş dönmesi yüzünden adı atlayan kayıt programını düzelt; sayı olmayan girişte yeniden soracak hale getir.
- Günün türünü switch ile bulmak: Gün adına göre hafta içi ya da hafta sonu döndüren metodu ok biçimli switch ifadesiyle yaz.
- Hedef tutara kaç yılda ulaşılacağını bulmak: Yıllık faizle hedef tutara ulaşmak için gereken yıl sayısını döngüyle hesapla; sıfır faiz ve ulaşılmış hedef durumlarını ele al.
- Aşırı yüklemede yanlış metodun seçilmesini düzeltmek: int ve double sürümleri olan indirim metodunda örtük dönüşüm yüzünden yanlış sürümün çağrıldığı yerleri bul, imzaları netleştir ve testleri geç.
- Dizide en küçük ve en büyük değerin yerini bulmak: Sıcaklık dizisinde en düşük ve en yüksek değerin indislerini döndüren metodu yaz.
- İki boyutlu dizide koltuk haritası: Salon koltuklarını iki boyutlu dizide tut; sıra bazında boş koltuk sayısını ve yan yana ilk iki boş koltuğu bulan metotları yaz.
- Döngüde silerken atlanan öğeleri düzeltmek: İndisle gezerken remove çağıran ve tam sayı listesinde yanlış aşırı yüklemeyi seçen temizlik kodunu düzelt; ardışık silme testlerini geç.
- Ürün sınıfına kurucu ve toString yazmak: Ad, fiyat ve stok alanları olan sınıfa kurucu, toString ve stok değeri hesaplayan metot ekle.
- Termostat ayarını aralıkla korumak: Herkese açık alanları özel yap; ayarlayıcıda aralık denetimi uygula ve geçersiz değerde durumun değişmediğini test et.
- Paylaşılan static alan hatasını bulmak: Her nesnenin kendi sayacı olması gerekirken static alan yüzünden tüm siparişlerin aynı numarayı aldığı sınıfı düzelt ve sabitleri final yap.
- Alt sınıfı super ile başlatmak: Çalışan sınıfından yönetici sınıfı türet; kurucuda super çağır ve maaş hesabını ezerek prim ekle.
- Ödenebilir arayüzüyle çok biçimlilik: Fatura ve maaş sınıflarına ortak arayüz uygula; tek liste üzerinden toplam ödemeyi hesaplayan metodu yaz.
- Ezme yerine aşırı yükleme tuzağını düzeltmek: Parametre türü farklı yazıldığı için ezilmeyen metot ve equals yüzünden yanlış çalışan şekil sınıflarını @Override ile ortaya çıkar ve düzelt.
- Hatalı sayıyı try-catch ile ele almak: Metinden yaş okuyan metodu NumberFormatException'ı yakalayıp anlamlı iletiyle kendi denetimli istisnasını fırlatacak şekilde yaz.
- Bozuk satırları atlayıp raporlayan CSV yükleyici: java.nio.file ve try-with-resources ile öğrenci dosyasını oku; bozuk satırları atla ve satır numarasıyla nedenini raporla.
- Girdi doğrulaması ve güvenli hata iletileri: Kullanıcıya yığın izini ve dosya yolunu gösteren kayıt programında girdileri doğrula, kullanıcıya genel ileti ver ve ayrıntıyı yalnızca günlüğe yaz.
Kurs hakkında
Kurumsal sistemlerde yaygın Java’yı sıfırdan öğrenir; değişkenden nesne yönelimli tasarıma ve güvenli hata yönetimine ilerlersin.
Ne öğreneceksin
- Başlarken
- Akış denetimi ve veri
- Nesne yönelimli temeller
- Hata yönetimi, dosyalar ve proje
- Bitirme
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.