Java'da Upcasting ve Downcasting nedir? Basit Açıklama

Yayınlanan: 2021-01-22

İçindekiler

Java'da Upcasting ve Downcasting

Java'da typecasting, bir veri türünün diğerine dönüştürülmesini içeren prosedürü ifade eder. Bu hem otomatik hem de manuel olarak yapılabilir. Bir programcı manuel dönüştürmeyi kendi başına yapmak zorundayken, otomatik işlem için bir derleyici kullanılır. Downcasting ve upcasting esasen iki tür nesne tiplemesidir.

Alt ve üst nesneler iki farklı nesne türüdür. Şimdi, yardımıyla nesnelerin başlatılabileceği iki yol vardır, daha sonra alt ve üst sınıfların sahip olduğu özellikleri de devralır. Bu yollar şunları içerir:

  • Child c = new Child(): Alt ve üst sınıfların altındaki tüm üyelere erişir
  • Parent p = new Child(): Yalnızca üst sınıf üyelerine ve ayrıca alt sınıfta geçersiz kılınan yöntemlere erişir

Esasen, Ebeveynden Çocuğa tip döküm, Upcasting olarak bilinirken, Çocuktan Veliye tip döküm, Downcasting olarak anılır.

Typecasting sistemi, değişkenlerin bir fonksiyon tarafından doğru bir şekilde işlenip işlenmediğini görmek için kullanılır. Downcasting örtük olarak mümkün olmasa da, hem açık hem de örtük olarak yukarıya yayın yapılabilir.

Hem downcasting hem de upcasting Java'nın önemli unsurlarıdır ve insanların basit sözdizimi kullanarak karmaşık programlar geliştirmelerini sağlar. Ayrıca, çeşitli nesneleri bir arada gruplandırma veya Polimorfizm gibi bazı büyük avantajları da vardır.

Dünyanın en iyi Üniversitelerinden Çevrimiçi yazılım geliştirme kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

yukarıya yayın

Yukarıya yayında, bir alt nesne, bir üst sınıf nesnesine yapılan bir typecast'tir. Bu işlemin kullanımı ile insanlar, ebeveynden çocuğa sınıfının seçkin yöntem ve değişkenlerine kolaylıkla erişebilirler. İşlemde, geçersiz kılınan yöntemler gibi alt sınıfın yalnızca bazı belirli yöntemlerine ve değişkenlerine erişim gerekir. Pek çok durumda, yükseltme, genişletme ve genelleme olarak da adlandırılır. Upcasting örtük olarak gerçekleştirilebilir ve insanlara üst sınıfın üyelerine erişme esnekliği sağlar.

Aşağıdaki örnek, sürecin daha iyi anlaşılmasına yardımcı olabilir.

Örnek: Çeşitli hayvan sınıflarını içeren bir hayvan sınıfı var, balık bunlardan biri. Şimdi, hayvan sınıfının balık sınıfı tarafından genişletildiğini varsayarsak, kalıtımın iki yolu olacaktır. Kalıtım, bir sınıfın diğerinin özelliklerini miras almasına izin veren Nesne Yönelimli Programlamanın veya OOP'nin temel yönlerinden biridir. Bu, temel sınıfın bir üst kümesi olan türetilmiş sınıfı ifade eder. Burada temel sınıftan daha fazla yöntem öne çıkarılabilir. Yükseltme sırasında, sınıf arabiriminde olabilecek tek şey, yöntemleri kazanmak yerine kaybetmekle sonuçlanabilmesidir. Bunun bir sonucu olarak, derleyici, herhangi bir tür özel notasyon veya açık atama olmadan yukarıya yayına olanak tanır.

Kompozisyon ve Kalıtım

Nesne yönelimli programlama söz konusu olduğunda, bir sınıf içinde yalnızca paketleme yöntemleri ve verileri bir arada kullanarak done oluşturma ve kullanma ve ardından o sınıfta bulunan nesneleri kullanma olasılığı yüksektir. İnsanlar, kompozisyon ile yeni sınıflar geliştirmek için mevcut belirli sınıfları bile kullanabilirler. Kalıtım nispeten nadiren kullanılır. OPP'yi öğrenirken, kalıtım çok fazla odaklanılsa da, geliştiricilerin doğru kullanımını bilmeleri ve mümkün olan her yerde basitçe kullanmaya çalışmamaları önemlidir.

Aslında, yalnızca kalıtımın gerçekten yararlı olduğu senaryolar için oldukça nadir kullanılmalıdır. Bir kişinin kalıtım mı yoksa kompozisyon mu kullanması gerektiğini belirlemenin en basit yollarından biri, yeni oyuncu kadrosundan temel oyuncu kadrosuna geçmeleri gerekip gerekmediği konusunda kendilerini sorgulamaktır. Yükseltmenin bir zorunluluk olması durumunda, kalıtımın kullanılması gerekir. Ancak bu bir zorunluluk değilse, miras ihtiyacı üzerinde daha fazla durmak gerekir.

aşağı yayın

Downcasting, nesne türü dökümünün başka bir şeklidir ve Java'da izin verilmeyen üst sınıfa alt sınıf referans nesnesinin atanmasında kullanılır. Downcast'i anlamak çok zor değil. Örneğin, bir temel sınıf ve dolaylı veya dolaylı olarak temel sınıftan türeyen bir sınıf varsa, o zaman temel sınıf türünden bir nesnenin türetilmiş bir sınıfa türetilen bir sınıfa türetilen her zaman, buna aşağı yayın olarak atıfta bulunulur. Sonuç olarak, aşağı yayına göre, bir temel sınıf nesnesi almaya ve ardından onu türetilmiş bir sınıf türüne dönüştürmeye çalışarak kalıtım diyagramında aşağı inilir. Bununla birlikte, yazılan koda bağlı olarak, downcasting'in bir anlam ifade edebileceğini veya etmeyebileceğini not etmek önemlidir.

İnsanlar downcasting sistemini yürütürken herhangi bir derleyici hatasıyla karşılaşmazlar. Ancak, bir çalışma zamanı istisnası olan Java.lang.ClassCastException ile karşı karşıya kalacaklardı. Öyleyse şimdi soru ortaya çıkıyor, eğer Java'da downcasting mümkün değilse, o zaman insanlar bunu neden yapıyor? Basitçe söylemek gerekirse, downcasting yalnızca üst sınıf tarafından atıfta bulunulan nesnenin bir alt sınıfa ait olduğu belirli durumlarda kullanılabilir.

Downcasting, bir nesneyi diğeriyle karşılaştırırken son derece yararlı olabilir.

Bir downcasting'in geçerli olup olmadığını kontrol etmek için, biri çalıştırılabilir.

getClass() sistemi, geliştiricilerin iletilen nesnenin sınıfını anlamasını ve ardından onu mevcut sınıfla karşılaştırmasını sağlar. Eşit olmamaları durumunda downcasting geçerli olmayacak ve bu işlemi denemek anlamsız olacaktır. Downcasting kavramı, büyük ölçüde süper tiplerin alt tiplere dökümünü kullanır. Böyle bir döküm işlemi genellikle açık bir şekilde yapılır. Bu, temel olarak, daha büyük boyutlu türlerin, küçük boyutlu türlere açıkça sığdırmak için yapıldığı anlamına gelir.

Upcasting vs Downcasting

Yükseltme ve. Downcasting'in belirli çok özel farklılıkları vardır. Bazılarının altı, aşağıdaki işaretlerle kısaca vurgulanmıştır:

  • Upcasting'de bir alt nesne, bir üst nesneye typecast edilir. Öte yandan, ana sınıf nesnesinin referansı, downcasting söz konusu olduğunda alt sınıfa geçer.
  • İnsanlar hem açık hem de örtük olarak yukarıya yayın yapabilirken, aşağı yayın yalnızca açık bir şekilde gerçekleştirilebilir.
  • Yükseltme durumunda, insanlar alt sınıftaki üst sınıfın değişkenlerine ve yöntemlerine erişebilir, ancak bunun tersi olamaz. Ancak downcasting'de, her iki sınıfın değişkenleri ve yöntemlerine kolayca erişilebilir.
  • Upcasting, yalnızca belirli alt sınıf yöntemlerine erişime izin verir. Hem downcasting yaparken hem de her iki sınıfa giren tüm metotlar ve değişkenler erişilebilir hale getirilir.

Çözüm

Upcasting Java'da nadiren kullanılır. Çoğu durumda, insanlar bunu sadece üst sınıfla ilgilenen bir kod geliştirmeleri gerektiğinde kullanırlar. Alt sınıfın davranışına erişim sağlayan bir kod geliştirme söz konusu olduğunda, downcasting kullanılır.

Java öğrenmek ve bulut bilişimde de sertifika almak istiyorsanız upGrad Bulut Bilişimde Gelişmiş Sertifika Programı sunar . 7,5 aylık çevrimiçi kurs, çalışan profesyonellerin bulut bilişim rollerine girmelerine yardımcı olmak için özel olarak tasarlanmıştır.

Tam Yığın Geliştirici Olun

LIVERPOOL JOHN MOORES'TAN BİLGİSAYAR BİLİMİ MASTER OFİSİ İÇİN ŞİMDİ BAŞVURUN