Sınıfları Tanımlama
Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 2 / 57.
Bir class, bir nesne türünü tanımlar: tuttuğu verileri ve yapabildiklerini. class Dog { ... } türü bildirir ve Dog() bu türden bir nesne, bir örnek oluşturur. Kotlin'de new anahtar sözcüğü yoktur:
class Dog {
var name = "Rex"
var age = 3
}main içinde:
val dog = Dog()
println(dog.name)
println(dog.age)Çıktı:
Rex
3Bir sınıfın içindeki değişkenler onun özellikleridir. Her örneğin kendine ait bir kopyası vardır; nokta ile okunur ve değiştirilir:
class Dog {
var name = "Rex"
}main içinde:
val first = Dog()
val second = Dog()
second.name = "Bella"
println(first.name)
println(second.name)Çıktı:
Rex
BellaBir sınıfın içindeki fonksiyon bir metottur (Kotlin bunlara üye fonksiyonlar der). Bir metot, çağrıldığı örneğin özelliklerini okuyabilir ve değiştirebilir:
class Counter {
var count = 0
fun increment() {
count++
}
fun report() = "count is $count"
}main içinde:
val clicks = Counter()
clicks.increment()
clicks.increment()
println(clicks.report())Çıktı:
count is 2Sınıf adları UpperCamelCase (BankAccount) kullanır; özellikler ve metotlar lowerCamelCase (balance, deposit()) kullanır. Verileri, bu veriler üzerinde çalışan işlevlerle gruplamak, nesne yönelimli programlamanın temel fikridir: bir Counter kullanan kod increment() çağrısını yapar ve sayının nasıl depolandığını bilmesine hiçbir zaman gerek kalmaz.
class BankAccount {
var balance = 0
fun deposit(amount: Int) {
balance += amount
}
}Görev
KolayPet sınıfının describe() metodunu tamamla. Bu metot, özelliklerden oluşturulan bir cümle döndürür: adı Rex, türü dog ve yaşı 3 olan bir evcil hayvan için sonuç Rex is a 3 year old dog olur.
Sağlanan kod bir Pet oluşturur, özelliklerini girdiden (ad, tür, yaş) ayarlar ve describe() metodunun sonucunu yazdırır.
Kodun Pet.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()
val pet = Pet()
pet.name = input[0]
pet.species = input[1]
pet.age = input[2].toInt()
println(pet.describe())
}
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