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ırGö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
}Görev
KolayProgramı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))
}
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
1Sınıflar ve Nesneler
Dosyalarla ÇalışmaSınıfları TanımlamaBirincil Yapıcılarinit Blokları ve Doğrulamaİkincil YapıcılarTekrar - Kütüphane Kartı4Kalıtım
Açık Sınıflar ve Alt SınıflarÜyeleri Geçersiz Kılmasuper ve YapıcılarSoyut SınıflarTekrar - Personel Dizini2Özellikler ve Kapsülleme
Özel ErişimcilerGörünürlük DeğiştiricileriÖzel Setter'larlazy ve lateinitTekrar - Banka Hesabı5Arayüzler
Arayüz BildirimleriVarsayılan MetotlarBirden Çok ArayüzTür Olarak ArayüzlerÖzet - Ödeme Yöntemleri8Generic'ler
Generic FonksiyonlarGeneric SınıflarTür Kısıtlamalarıin ve out ile VaryansTekrar - Öncelik Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Kotlin playground