Menu
Coddy logo textTech

Dosyalarla Çalışma

Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 1 / 57.

Gerçek programlar birkaç dosyaya bölünür. Bir Kotlin programının tüm .kt dosyaları birlikte derlenir; bu nedenle bir dosyada bildirilen bir işlev veya sınıf, bir import olmadan aynı paketin diğer dosyalarında kullanılabilir:

// Greeting.kt
fun greeting(name: String) = "Hello, $name!"

// Main.kt
fun main() {
    println(greeting("Ada"))
}

Bu program çalıştırıldığında Hello, Ada! yazdırılır: Main.kt içindeki main, Greeting.kt içinde bulunan işlevi çağırır.

Bir Kotlin dosyası yalnızca bildirimleri içerir: sınıflar, işlevler, özellikler. println(...) gibi ifadeler bir işlevin içinde olmalıdır. Program, kural olarak Main.kt içinde bulunan fun main() ile başlar:

// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// println("hi")            // hata: ifadeler bir fonksiyonun içinde olmalıdır

// Main.kt
fun main() {
    val name = readLine() ?: "friend"
    println(greeting(name))
}

Genel düzen, sınıf başına bir dosya olacak ve dosyanın adı sınıfın adını taşıyacak şekildedir: Dog.kt, Dog sınıfını; Account.kt ise Account sınıfını içerir. Bu bölümdeki görevlerde kodunuz bu dosyalara yazılır ve Main.kt, genellikle düzenleyemeyeceğiniz, sağlanan girdi/çıktı kodunu içerir. Düzenleyici her dosyayı bir sekme olarak gösterir.

Dog.kt        // class Dog(...) { ... }
Account.kt    // class Account { ... }
Main.kt       // fun main(): girdiyi okur ve sonuçları yazdırır

Görünürlük dosyalar için de geçerlidir. private ile işaretlenmiş üst düzey bir bildirim yalnızca kendi dosyası içinde görünürken, varsayılan olan public bildirimi her dosyada görünür kılar:

// Secret.kt
private const val SALT = "x7"        // sadece bu dosya onu görebilir
fun hashed(s: String) = s + SALT

// Main.kt
fun main() {
    println(hashed("pw"))            // tamam: hashed public
    // println(SALT)                 // hata: SALT Secret.kt'te private
}
challenge icon

Görev

Kolay

Programın iki dosyası vardır. Main.kt içindeki main, adları okur ve greeting(name) sonucunu yazdırır. Greeting.kt içindeki greeting işlevini, adı Ada olduğunda Hello, Ada! döndürecek, ad boş olduğunda ise Hello, friend! döndürecek şekilde tamamla.

Kodun Greeting.kt dosyasına yazılmalıdır. Main.kt, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.

Kendin dene

fun main() {
    // Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
    val input = generateSequence(::readLine).toList()
    for (name in input) println(greeting(name))
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground