Video: Java Programlama Dersleri 18 - OOP Giriş ve Classlar (Sınıflar) 2024
Java'daki A genel sınıf , derleyicide programcı tarafından belirtilen belirli bir tip üzerinde çalışabilen bir sınıftır zaman. Bunu başarmak için, sınıf tanımı türleri (int veya String gibi) temsil eden değişkenler gibi davranan tür parametresi s 'ı kullanır.
Genel bir sınıf oluşturmak için, sınıf parametresinin ardından köşeli parantez içinde type parametresini listelersiniz. Type parametresi, aksi takdirde bir tür kullandığınız her yerde sınıf içinde kullanabileceğiniz bir adı belirtir. Örneğin, ArrayList sınıfı için sınıf bildiriminin basitleştirilmiş bir sürümü buradadır:
public class ArrayList
Resmi parametreye odaklanmak için extends ve implement yan tümcelerini çıkardım:. E parametresi, listede saklanan öğelerin türünü belirtir.
Jenerik sınıfın bir örneğini oluşturmak için, type parametresi yerine kullanılacak gerçek türünü sağlamanız gerekir:
ArrayList myArrayList;
Burada E parametresi String'dir, bu nedenle ArrayList sınıfının bu örneği için eleman türü String'tir.
ArrayList sınıfı için add yönteminin bildirimine bakın: public boolean add (E o) {// yöntemin gövdesi atlanmıştır (teşekkür ederim)}
Nerede normalde bir parametre türü görmeyi beklerseniz, harfi gördünüz demektir. Dolayısıyla, bu yöntem bildirimi, o parametresi için türün, resmi tür parametresi E için belirtilen türünü belirtir. E, String ise, add yöntemi yalnızca String nesnelerini kabul eder. Bir String parametresinden başka bir şey geçirmeden add yöntemini çağırırsanız, derleyici bir hata mesajı üretecektir.
public E get (int index) {// yöntemin gövdesi atlanmıştır (hoş geldiniz)}
Burada E dönüş türü olarak belirtilmiştir. Yani, E String ise, bu yöntem String nesneleri döndürür demektir.
Jeneriklerin en önemli yararı, derleme zamanında tür denetimi yapılmasıdır. Böylece, resmi bir tür parametresinin değerini belirledikten sonra derleyici, parametre tarafından ima edilen tür denetimi yapmayı bilir. Bu, bir Çalışan koleksiyonuna String nesneleri eklemenize izin vermeyeceğini bilir.