CodeBlanks Logo Icon CodeBlanks

internal

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

Main.kt
// 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

Main.kt
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

Soru
____ class Helper
Cevap
internal class Helper

Açıklama: internal class Helper ile sınıf modülle sınırlanır.

Orta seviye bölümündeki tüm dersler