internal
- Kotlin kursu
- Orta seviye
- Ders 102/116
- 5 dk
internal ile modül görünürlüğü öğrenirsin.
internal: Modül görünürlüğü
internal görünürlük değiştiricisi, bir tanımın yalnızca aynı modül içinde göründüğünü belirtir. Modül, birlikte derlenen bir Gradle veya Maven birimidir. public her yerden, internal yalnızca modül içinden erişilebilir.
internal class Helper {
fun assist() = "yardım"
}Burada Helper sınıfı yalnızca kendi modülünde kullanılabilir; başka bir modülden erişilemez. Bu, bir kütüphanenin iç uygulamasını dış kullanıcıdan gizlemek için yararlıdır. private sınıf içinde, protected alt sınıflarda geçerlidir; internal ise modül düzeyinde çalışır.
Modül kavramı
Bir modül, birlikte derlenen bir kod birimidir; genellikle bir Gradle alt projesidir. Bir projede birden çok modül olabilir: uygulama modülü, kütüphane modülü, test modülü gibi. internal tanımlar, aynı modüldeki tüm dosyalar tarafından görülebilir; başka modüller tarafından görülemez.
// modul-a: Helper internal
class Api {
internal fun helper() = "gizli"
}Burada Api sınıfı public ama helper metodu internal'dir. Yani Api başka modülden kullanılabilir ama helper kullanılamaz. Bu, bir API'nin dış yüzeyini daraltmak için kullanışlıdır; dış kullanıcı yalnızca public kısımları görür.
Uygulama internal sınıf tanımla ve kullan
internal class Helper tanımla; içinde fun greet(name: String): String = "Merhaba, $name!" olsun. main içinde val h = Helper() ile örnek oluştur; println(h.greet("Ayşe")) ile sonucu yazdır.
Başlangıç kodu
// Helper sınıfını internal olarak tanımla (aynı modülde görünür)
// greet metodu: Merhaba, {name}! döndürsün
// main: Helper örneği oluştur, greet'i çağır ve println ile yazdır
fun main() {
// buraya yaz
}Örnek çözüm
internal class Helper {
fun greet(name: String): String = "Merhaba, $name!"
}
fun main() {
val h = Helper()
println(h.greet("Ayşe"))
}Beklenen çıktı
Merhaba, Ayşe!
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 internal görünürlük nerede geçerlidir?
- Yalnızca aynı modülde Doğru cevap
- Yalnızca aynı ad alanında
- Yalnızca aynı dosyada
- Her yerde
Açıklama: internal, tanımı aynı modülle sınırlar.
2 Görünürlük değiştiricilerini eşle
| Kavram | Anlamı |
|---|---|
public |
Her yerden erişilebilir |
internal |
Aynı modül |
private |
Aynı sınıf |
protected |
Alt sınıflar |
3 Sınıfı modüle sınırla
____ class Helper
internal class Helper
Açıklama: internal class Helper ile sınıf modülle sınırlanır.