Ankara
0 (312) 276 75 93
info@billgatesweb.com

Aşırı Yükleme  – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Web Danışmanlık Hizmeti, Seo Hizmeti Al, Mobile Uygulama Yaptır, Back Link Satın Al, Blog Yazdırmak İstiyorum, Makale YAZDIRMA siteleri, Parayla makale YAZDIRMA, Seo makale fiyatları, Sayfa başı yazı yazma ücreti, İngilizce makale yazdırma, Akademik makale YAZDIRMA, Makale Fiyatları 2022, Makale yazma, Blog Yazdırma

Aşırı Yükleme  – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Ana Arayüz – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Aşırı Yükleme

Koleksiyonları kümeler, listeler veya başka tür koleksiyonlar olmalarına göre sınıflandırmaya yönelik iyi niyetli bir girişim buradadır. Bu programın “Set” ve ardından “Liste” ve “Bilinmeyen Koleksiyon” yazdırmasını bekleyebilirsiniz, ancak bu böyle değildir; üç kez “Bilinmeyen Koleksiyon” yazdırır. Bu neden oluyor? Sınıflandırma yöntemi aşırı yüklendiğinden ve hangi aşırı yüklemenin çağrılacağı derleme zamanında yapılır. Döngünün üç yinelemesi için parametrenin derleme zamanı türü aynıdır.

Çalışma zamanı türü her yinelemede farklıdır, ancak bu aşırı yükleme seçimini etkilemez. Parametrenin derleme zamanı türü Koleksiyon olduğundan, geçerli olan tek aşırı yükleme üçüncü olandır, classify(Collection) ve bu aşırı yükleme, döngünün her yinelemesinde çağrılır.

Aşırı yüklenmiş yöntemler arasından seçim statik, geçersiz kılınmış yöntemler arasında seçim ise dinamik olduğundan, bu programın davranışı sezgiseldir. Geçersiz kılınan bir yöntemin doğru sürümü, yöntemin çağrıldığı nesnenin çalışma zamanı türüne göre çalışma zamanında seçilir.

Hatırlatma olarak, bir alt sınıf, bir atadaki yöntem bildirimiyle tam olarak aynı imzaya sahip bir yöntem bildirimi içerdiğinde, bir yöntem geçersiz kılınır. Bir alt sınıfta bir örnek yöntemi geçersiz kılınırsa ve bu yöntem alt sınıfın bir örneğinde çağrılırsa, alt sınıf örneğinin derleme zamanı türünden bağımsız olarak alt sınıfın geçersiz kılma yöntemi yürütülür. Bunu somut hale getirmek için aşağıdaki küçük programı düşünün.

Ad yöntemi A sınıfında bildirilir ve B ve C sınıflarında geçersiz kılınır. Beklediğiniz gibi, bu program, örneğin derleme zamanı türü, döngünün her yinelemesinde A olsa bile “ABC” yazdırır.

Bir nesnenin derleme zamanı türünün, geçersiz kılınan bir yöntem çağrıldığında hangi yöntemin yürütüleceği üzerinde hiçbir etkisi yoktur; “en spesifik” geçersiz kılma yöntemi her zaman yürütülür. Bunu, bir nesnenin çalışma zamanı türünün, hangi aşırı yüklemenin yürütüleceği üzerinde hiçbir etkisi olmadığı aşırı yükleme ile karşılaştırın; seçim, tamamen parametrelerin derleme zamanı türlerine dayalı olarak derleme zamanında yapılır.

CollectionClassifier örneğinde, programın amacı, tıpkı “ABC” örneğinde name yönteminin yaptığı gibi, parametrenin çalışma zamanı türüne göre uygun yöntem aşırı yüklemesine otomatik olarak göndererek parametrenin türünü ayırt etmekti. Yöntem aşırı yüklemesi bu işlevi sağlamaz. Programı düzeltmenin yolu, sınıflandırmanın üç aşırı yüklemesini de açık bir test örneği yapan tek bir yöntemle değiştirmektir.

Geçersiz kılma norm olduğundan ve aşırı yükleme istisna olduğundan, geçersiz kılma, insanların yöntem çağırma davranışına ilişkin beklentilerini belirler. CollectionClassifier örneğinde gösterildiği gibi, aşırı yükleme bu beklentileri kolayca karıştırabilir.

Ortalama bir programcının incelemeden sonra davranışı aşikar olmayacak bir kod yazmak kötü bir uygulamadır. Bu özellikle API’ler için geçerlidir. Bir API’nin tipik kullanıcısı, belirli bir parametre kümesi için birkaç yöntem aşırı yüklemesinden hangisinin çağrılacağını bilmiyorsa, API kullanımının hatalarla sonuçlanması muhtemeldir. Bu hatalar muhtemelen çalışma zamanında düzensiz davranışlar olarak kendini gösterecek ve birçok programcı bunları teşhis edemeyecektir. Bu nedenle, aşırı yüklemenin kafa karıştırıcı kullanımlarından kaçınmalısınız.


Overloading Java
Overloading C Nedir
Overloading ne demek
Java Overloading Nedir
Method overloading
Method Override Nedir
C Aşırı yükleme Örneği
Overriding


Aşırı yüklemenin kafa karıştırıcı kullanımının tam olarak ne olduğu bazı tartışmalara açıktır. Güvenli, muhafazakar bir politika asla aynı sayıda parametreyle iki aşırı yüklemeyi dışa aktarmamaktır. Bu kısıtlamaya bağlı kalırsanız, programcılar herhangi bir parametre kümesine hangi aşırı yüklemenin uygulanacağı konusunda hiçbir zaman şüphe duymazlar. Bu kısıtlama çok zahmetli değildir çünkü yöntemlere aşırı yükleme yerine her zaman farklı isimler verebilirsiniz.

Örneğin, ObjectOutputStream sınıfını düşünün. Her ilkel tür ve çeşitli referans türleri için yazma yönteminin bir varyantına sahiptir. Yazma yöntemini aşırı yüklemek yerine, bu değişkenler writeBoolean(boolean), writeInt(int) ve writeLong(long) gibi imzalara sahiptir.

Aşırı yükleme ile karşılaştırıldığında bu adlandırma modelinin ek bir yararı, örneğin readBoolean(), readInt() ve readLong() gibi ilgili adlarla okuma yöntemleri sağlamanın mümkün olmasıdır. ObjectInputStream sınıfı aslında bu adlarla okuma yöntemleri sağlar.

Yapıcılar için farklı adlar kullanma seçeneğiniz yoktur; bir sınıf için birden çok kurucu her zaman aşırı yüklenir. Bazı durumlarda, yapıcılar yerine statik fabrikaları dışa aktarma seçeneğiniz vardır, ancak bu her zaman pratik değildir.

İyi tarafı, yapıcılar geçersiz kılınamayacağından, yapıcılarla aşırı yükleme ve geçersiz kılma arasındaki etkileşimler hakkında endişelenmenize gerek yoktur. Muhtemelen aynı sayıda parametreye sahip birden çok kurucuyu dışa aktarma fırsatınız olacağından, bunu yapmanın ne zaman güvenli olduğunu bilmek önemlidir.

Aynı sayıda parametreyle birden fazla aşırı yüklemeyi dışa aktarmak, herhangi bir gerçek parametre kümesine hangi aşırı yüklemenin uygulanacağı her zaman açıksa, programcıların kafasını karıştırması olası değildir. Bu, her bir aşırı yükleme çiftinde karşılık gelen en az bir resmi parametrenin, iki aşırı yüklemede “radikal olarak farklı” bir türe sahip olduğu durumdur.

Her iki türün bir örneğini diğerine aktarmak açıkça imkansızsa, iki tür kökten farklıdır. Bu koşullar altında, belirli bir gerçek parametre kümesine uygulanan aşırı yükleme, parametrelerin çalışma zamanı türleri tarafından tamamen belirlenir ve derleme zamanı türlerinden etkilenemez, bu nedenle ana karışıklık kaynağı ortadan kalkar.

Örneğin, ArrayList int alan bir kurucuya ve bir Koleksiyon alan ikinci bir kurucuya sahiptir. İlkel türler ve referans türleri kökten farklı olduğundan, bu iki kurucudan hangisinin herhangi bir koşulda çağrılacağı konusunda herhangi bir karışıklık hayal etmek zordur.

Benzer şekilde, BigInteger’ın bir bayt dizisi alan bir yapıcısı ve bir String alan bir yapıcısı vardır; bu herhangi bir karışıklığa neden olmaz. Object dışındaki dizi türleri ve sınıfları kökten farklıdır. Ayrıca, Serileştirilebilir ve Cloneable dışındaki dizi türleri ve arabirimler de kökten farklıdır.

Son olarak, 1.4 sürümünden itibaren Throwable, String alan bir kurucuya ve bir Throwable alan diğer kurucuya sahiptir. String ve Throwable sınıfları ilgisizdir, yani hiçbir sınıf diğerinin soyundan değildir. Herhangi bir nesnenin ilişkisiz iki sınıfın örneği olması imkansızdır, bu nedenle ilişkisiz sınıflar kökten farklıdır.

Her iki yönde de dönüştürülemeyen birkaç ek tip çifti örneği vardır, ancak bu basit durumların ötesine geçtiğinizde, ortalama bir programcı için aşırı yüklemenin bir dizi için geçerli olup olmadığını ayırt etmesi çok zor olabilir. gerçek parametreler. Hangi aşırı yüklemenin seçildiğini belirleyen belirtim karmaşıktır ve çok az programcı bunun tüm inceliklerini anlar.

Bazen, yeni arayüzleri uygulamak için mevcut sınıfları uyarlarken yukarıdaki yönergeleri ihlal etmek zorunda kalabilirsiniz. Örneğin, Java platform kitaplıklarındaki değer türlerinin çoğu, Comparable arabiriminin tanıtılmasından önce “kendi kendine yazılan” karşılaştırma yöntemlerine sahipti.

Karşılaştırılabilir arabirimin tanıtılmasıyla, bu sınıfların tümü, bu bildirimle daha genel bir karşılaştırma yönteminin eklenmesini içeren bu arabirimi uygulamak için yeniden donatıldı.

Ortaya çıkan aşırı yükleme, yukarıdaki yönergelerin açıkça ihlali olsa da, her iki aşırı yüklenmiş yöntem, aynı parametreler üzerinde çağrıldıklarında her zaman tam olarak aynı şeyi yaptığı sürece zarar vermez. Programcı hangi aşırı yüklemenin başlatılacağını bilemeyebilir, ancak her iki yöntem de aynı sonucu verdiği sürece bunun bir önemi yoktur. Bu davranışı sağlamanın standart yolu, daha genel aşırı yüklemeyi daha spesifik hale getirmektir.


Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır. 

1) Backlink Paketi  50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)


 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

× Bize Whatsapp'tan Ulaşın