Kotlin - 9 - Görünürlük ayarı Extension Method
Sınıf, Obje, interface, constructors, fonksiyonlar,
özellikler ve getter setter method ları visibility modifier içerebilir. 4
görünürlük söz konusu. Local tanımlı değişken,
sınıf yada fonksiyonlar visibility modifiers kullanamaz.
Package:
Özellikle tanımlanmaz ise ön tanımlı olanı “public” tir.
- "public" – Bu objenin her yerden erişilebilir olduğu anlamına gelir.
- "private" – Tanımı içeren dosya içinde erişilebilir.
- "protected" - üst seviye tanımlar için kullanılabilir değil
- "internal" – aynı modül (Kabaca birlikte derlenen dosyalar.) içinde erişilebilir.
Sınıf ve interface:
Özellikle tanımlanmaz ise ön tanımlı olanı “public” tir.
- "public" – tanımlı classı gören her yerden erişilebilir.
- "private" – Tanımı içeren Sınıf, ve memberları içinde erişilebilir.
- "protected” - private + alt sınıflarda (bu sınıftan türetilen sınıflarda) erişilebilir.
- "internal” – aynı modül içindeki tanımlı classı gören her yerdeniçinde erişilebilir.
Constructors:
Özellikle tanımlanmaz ise ön tanımlı olanı “public” tir.
Extension:
Bir sınıfı kalıtmadan ya da Decorator gibi bir design patern
kullanmada, ona ek özellik eklemek mümkün bunu, extension function olarak adlandırabiliriz.
Kotlin c# ve Gosu gibi extension tanımlanmasına elverişlidir.
Örnek incelenir ise “.swap” şeklinde kendinden önce gelen “MutableList<T>”
tipine swap adında bir method ekliyor, Ancak aslında Extensionlar class’ı
değiştirmez yani yeni bir member eklemez ancak nokta ile çağrılabilir statik
bir method ekler.
Companion object kullanımı var isebu obje içinde extension
özellik yada fonksyon eklenebilir. Ancak çağrılırken ana sınıfın memberları
kullanılır gibi çağrılabilir. Extensionları kullanabilmek için en üst seviyeye
ekleriz. Eğer dış bir paketteki extension’ı kullanmak ister isek paket
tanımının altında import ederiz.
package com.example.usage
import foo.bar.goo // importing all extensions byname "goo" // or
import foo.bar.* // importing everything from"foo.bar"
Yorumlar
Yorum Gönder