Sealed Class Nedir?

Tuğçe Aras
2 min readSep 12, 2022

--

(2022) Miro.medium.com. Available at: https://miro.medium.com/max/687/1*Snr4l4sNH1OaeuIYxfz-nA.png

Selamlar 👋, bugünkü konumuz Sealed Class’lar. Nedir? ve Nasıl kullanılır? gelin birlikte bakalım.

🔹Sealed Class Nedir?

  • Sealed Class’lar gruplanabilir sınıflar yazmamızı sağlamaktadır.
  • Bu class’lar arka planda static olarak tutulmazlar ve bu yönüyle Enum Class’lardan ayrılır.

Enum Class -> Verileri gruplar || Sealed Class -> Sınıfları gruplar

Yapısı:

  • Sealed Class’lar abstract sınıflardır. Bundan dolayı da open ve final olamazlar.
  • Sealed Class’ların nesnesi oluşturulamaz. Constructor’ları private ya da protected olarak bulunur.

O zaman arka planda nasıl tutuluyor bakalım. Show Kotlin ByteCode’u açalım:

  • Sealed sınıf içerisine yazılan subclass’lar(Success,Loading,Error) arka planda final olarak tutuldukları için miras olarak alınamazlar.
  • Sealed sınıfların subclass’ları compiletime’da bilinmektedir.
  • SealedClass’lar içerisinde object tanımlamaları yapılabilmektedir.

❗️ Ancak Sealed Class içerisine object tanımlamak doğru değildir. Çünkü her bir object arka planda static class olarak tutulur. Dolayısıyla yazdığımız Rectangle,Circle ve Square de static class olarak tutulacaktır. O yüzden object’leri Sealed Class içerisine değil de Enum Class içerisine yazmak daha doğru bir kullanımdır.

  • İki farklı şekilde Sealed Class yazılabilir. (Daha çok ikincisini kullanma eğiliminde olacağız.)
  • Sealed Class’lara interface implement edilebilir. Implement edildiği zaman her bir subclass içerisinde override işlemi gerçekleştirilmelidir. Çünkü Status Class’ı hem Success’in hem Loading’in hem de Error’un üst class’ı konumundadır.

Implement işlemi şu şekilde de olabilir:

  • Sealed Class’lara abstract class verilebilir. Verildiği taktirde abstract class içerisindeki fonksiyon ya da değişken subclass’lar içerisinde override edilmelidir.
  • Sealed Class içerisine Data Class yazılabilir.
  • Bir class’ı Sealed Class’a miras verebiliriz.

gif kaynak: The End Remix GIF — Find & Share on GIPHY (2022). Available at: https://giphy.com/gifs/remix-the-end-barton-fink-hRqxN8UbaaGuA

--

--

Tuğçe Aras
Tuğçe Aras

Written by Tuğçe Aras

Android Developer at Şekerbank T.A.Ş. 💻💚 | https://bio.link/tugcearas

No responses yet