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 tanımlanan bir işlev veya sınıf, aynı paketteki diğer dosyalarda import edilmeden kullanılabilir:
// Greeting.kt
fun greeting(name: String) = "Hello, $name!"
// Main.kt
fun main() {
println(greeting("Ada"))
}Bu programı çalıştırmak Hello, Ada! çıktısını verir: Main.kt içindeki main, Greeting.kt içinde bulunan işlevi çağırır.
Bir Kotlin dosyası yalnızca bildirimler içerir: sınıflar, fonksiyonlar, özellikler. println(...) gibi ifadeler bir fonksiyonun içinde olmalıdır. Program, geleneksel olarak Main.kt içinde yer alan 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 şekildedir ve dosyaya sınıfın adı verilir: Dog.kt içinde Dog, Account.kt içinde Account bulunur. Bu bölümdeki alıştırmalarda kodunuzu bu dosyalara yazarsınız; Main.kt ise 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 olarak işaretlenmiş en üst düzey bir bildirim yalnızca kendi dosyasının içinde görünürken, varsayılan olan public her dosyada görünür olmasını sağlar:
// Secret.kt
private const val SALT = "x7" // yalnızca bu dosya ona erişebilir
fun hashed(s: String) = s + SALT
// Main.kt
fun main() {
println(hashed("pw")) // sorun yok: hashed herkese açık
// println(SALT) // hata: SALT, Secret.kt içinde private
}Görev
KolayProgram iki dosyadan oluşuyor. Main.kt içindeki main, adları okur ve greeting(name) sonucunu yazdırır. Greeting.kt içindeki greeting fonksiyonunu, Ada adı için Hello, Ada!, ad boş olduğunda ise Hello, friend! döndürecek şekilde tamamla.
Kodunu Greeting.kt dosyasına yaz. Main.kt, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
fun main() {
// Sağlanan giriş/çıkış 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