Yükleniyor...

Java'da Generics

Liste kurarken öğe türünü açılı parantezlerin içinde adlandırın. Bin.java içinde public sınıf Bin'i tutun, import java.util.ArrayList; ekleyin, ArrayList<String> names = new ArrayList<>(); oluşturun, "oak" ekleyin ve names.get(0) yazdırın. javac Bin.java ile derleyin ve java Bin çalıştırın. Ekran oak göstermelidir. İkinci demo aynı yöntemle Integer değeri 3 saklar. İsteğe bağlı Lambda'yı sonraki sayfaya bırakın. Bu ders Generics ile tipli listelerdir; komut satırı args değildir ve Scanner mini projesi değildir.

Type argument'lı String listesi

Bin.java dosyasını açın. Public sınıf adını Bin tutun. Generics hikâyesini gölgeliyorsa kalan Program Arguments Flag demolarını, Box içindeki kalan Scanner istemlerini, Build derleme çıktılarını ve Shelf koleksiyon geçmişini silin. Program yazı beklememeli ve args okumamalıdır.
Üste import ekleyin:
import java.util.ArrayList;
Bin.main içinde öğeleri String olan bir liste oluşturun:
ArrayList<String> names = new ArrayList<>();
ArrayList sonrasındaki açılı parantezler type argument String'i taşır. new tarafındaki boş <> diamond'dır — Java aynı türü soldan doldurur. Sonra bir kelime saklayın ve indeksle yazdırın:
names.add("oak");
System.out.println(names.get(0));
get(0) bir String döndürür çünkü liste String ile bildirilmiştir. Ekran oak gösterir.

Bin ArrayList String prints oak

java
import java.util.ArrayList;

public class Bin {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();
        names.add("oak");
        System.out.println(names.get(0));
    }
}

Bin.java dosyasının bulunduğu klasörden javac Bin.java çalıştırın. Süslü parantez, köşeli parantez ve noktalı virgüller uyumluysa javac kendi başına satır yazmaz. Sonra java Bin — java Bin.java değil. Tek public sınıf tutun ki ad Bin ile eşleşsin.
Çalıştırmayı bir kez izleyin. Java Bin.main'de başlar. Liste String için tipli. add "oak" saklar. get(0) o kelimeyi döndürür. println oak yazar. Flag'den args[0] yazdırılmaz. item: beklenmez. Eski Shelf dosyasını çalıştırmadıkça [oak, pine] yazdırılmaz.
Ekrana bakarken acemi kuralını söyleyin: açılı parantezler öğe türünü adlandırır; diamond new'de tekrarlar; get o türü döndürür. Bu sayfada Lambda demoları icat etmeyin. Lambda sonraki isteğe bağlı derste bekler. Bu öğretim dosyasında listeyi ArrayList names gibi type argument'sız raw bırakmayın.
Hâlâ java Flag oak'tan oak görüyorsanız o Program Arguments'tı. Burada oak liste öğesidir ve çalıştırma komutu yalnızca java Bin'dir. javac ArrayList bulamazsa import satırını kontrol edin.

Aynı alışkanlıkla Integer listesi

Generics yalnızca kelimeler için değildir. Aynı public sınıf Bin'i tutun. Integer değerlerinden bir liste kurun:
ArrayList<Integer> nums = new ArrayList<>();
nums.add(3);
System.out.println(nums.get(0));
Yeniden javac Bin.java ile derleyin ve java Bin çalıştırın. Ekran 3 gösterir. Type argument Integer'dır çünkü ArrayList nesne saklar ve bu başlangıç şeklinde tam sayılar için nesne biçimi Integer'dır. Diamond yine türü sol taraftan kopyalar.

Bin ArrayList Integer prints 3

java
import java.util.ArrayList;

public class Bin {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<>();
        nums.add(3);
        System.out.println(nums.get(0));
    }
}

Çalıştırmayı bir kez izleyin. Liste Integer için tipli. add(3) değeri saklar. get(0) onu döndürür. println 3 yazar. İki demoyu iki öğretim şekli olarak tutun. Önce String listesini kanıtlayın. Sonra Integer listesini kanıtlayın. Her iki şekil import, diamond, add ve get(0) paylaşır.
ArrayList<String> yazıp sonra add(3) derseniz javac uyuşmazlığı reddeder. ArrayList<Integer> yazıp sonra add("oak") derseniz javac bunu da reddeder. Type argument listenin ne tuttuğuna dair sözleşmedir.

Tipli liste alışkanlıkları

Pratik yaparken type argument ile diamond'ı birlikte tutun.

📊 Bin için Generics alışkanlıkları

Alışkanlık Tipli şekil Acemi kontrolü
Bildirim ArrayList<String> names açılı parantezler öğe türünü adlandırır
Oluşturma new ArrayList<>() diamond türü soldan kopyalar
String sakla names.add("oak") değer String ile uyumludur
Integer sakla nums.add(3) değer Integer ile uyumludur
Okuma get(0) bildirilen öğe türünü döndürür

Generics ne Flag ne Lambda

Program Arguments çalıştırma satırından String[] args doldururdu. Generics kodda kurduğunuz koleksiyonun öğe türünü adlandırır. Lambda sonraki isteğe bağlı sayfada bazı çağrı şekillerini kısaltır. Bugün bu üç işi tek acemi dosyasında karıştırmayın.
Bin'deki oak saklanmış liste değeridir. java Flag sonrası oak bir argümandı. Aynı yazım, farklı iş. Kalan Flag dosyası hâlâ komut satırında kelime istiyorsa geçmiş olarak bırakın ve ekstra kelime olmadan java Bin çalıştırın.
Type argument olmadan raw liste bu sayfanın öğrettiği net sözleşmeyi kaybeder. Tuttuğunuz demolarda ArrayList<String> veya ArrayList<Integer> kullanın. Lambda sözdizimini o derse kadar bu sayfadan uzak tutun.

Lambda öncesi klasör kontrolü

Başarılı derlemeden sonra klasörü listeleyin. Bin.java ile Bin.class birlikte görünmelidir. Kaynağı düzenleyin, kaydedin, javac Bin.java çalıştırın, sonra java Bin. Düzenlemeden sonra derlemeyi atlamışsanız bayat .class eski çıktı gösterebilir.
javac yinelenen public sınıftan şikâyet ederse yalnızca Bin public kalsın. Ekran oak yerine [oak] gösteriyorsa tüm listeyi yazdırmışsınız — öğretim çıktısı get(0) kalsın. Hiçbir şey yazmıyorsa main hâlâ println çağırıyor mu kontrol edin.
Flag argüman döngülerini Bin'e yapıştırmayın. Box Scanner istemlerini Bin'e yapıştırmayın. İsteğe bağlı Generics işi, öğe türü net tipli listelerdir.

İsteğe bağlı Lambda öncesi

Public sınıf Bin, ArrayList import'u, diamond ile ArrayList<String>, "oak" ekleme, get(0) ile oak yazdırma, sonra ArrayList<Integer>, 3 ekleme ve 3 yazdırma yapabilirsiniz. javac Bin.java derleyin ve java Bin çalıştırın. Tablo bildirim, oluşturma, saklama ve okumayı ayırır. Sonraki isteğe bağlı sayfa Lambda'dır.
Bin demolarını net Generics çifti için tutun. Tipli liste pratiğinde Flag'li Program Arguments dosyalarını bu sayfadan uzak tutun. Tipli liste pratiğinde Box'lı Mini Project dosyalarını bu sayfadan uzak tutun. Lambda çalışmasını o derse kadar bu sayfadan uzak tutun. Bu alışkanlıklar devam etmeden önceki kontrol noktasıdır. String demosu oak veya Integer demosu 3 gösterdiğinde Generics bu dersin işini yapmıştır ve isteğe bağlı yola devam ederseniz Lambda'ya hazırsınız.
Klasörde son tur: bir public Bin, import hazır, açılı parantezde type argument, new'de diamond, uyumlu add değerleri, get(0) yazdırma, Scanner beklemesi yok, çalıştırma satırında kelime gerekmez. Açık tuttuğunuz demoda bir kez daha javac Bin.java ve java Bin çalıştırın. Ekran hâlâ oak veya 3 gösteriyorsa Generics şekli sağlamdır ve kurs sonraki sayfada isteğe bağlı Lambda'ya geçebilir. Her okumada tek net tipli liste alışkanlığı tutun ki her tur aynı haritayı öğretsin.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
5
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek