Tekrar - Bilet Gişesi
Coddy'nin Kotlin Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 16 / 57.
Görev
OrtaÜç tür bildirim kullanarak küçük bir bilet gişesi oluşturun.
Ticket,number,showveseatalanlarını alan özel bir kurucuya sahiptir. Companion nesnesiconst val SEATS = 3sabitini, özel bir sayacı ve biletleri 1, 2, 3, ... numaralarıyla oluşturanissue(show, seat)fabrikasını barındırır;issuedşimdiye kadar oluşturulan biletlerin sayısıdır.label(),#1 Hamlet seat 2döndürür.BoxOfficebir nesnedir.sell(show, seat), koltuk 1 ileTicket.SEATSaralığının dışındaysano seat 4, o gösteri için satılmışsaseat 2 takenyanıtını verir; aksi takdirde bir bilet oluşturur ve etiketini yanıt olarak verir.refund(number), satılmış bir biletin koltuğunu serbest bırakır verefunded #1veyano ticket #9yanıtını verir.report(), gösterileri alfabetik sırada olacak şekildeHamlet 2/3, Cats 1/3yanıtını veyanothing soldyanıtını verir.
Sağlanan kod sell Hamlet 2, refund 1 veya report komutlarını okur, her yanıtı yazdırır ve son olarak sayı ile birlikte tickets issued: yazdırır. İade işleminden sonra numaralar asla yeniden kullanılmaz.
Kodunuz Ticket.kt ve BoxOffice.kt dosyalarına gelmelidir. Main.kt, sağlanan giriş/çıkış 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 (cmd in input) {
val p = cmd.split(" ")
when (p[0]) {
"sell" -> println(BoxOffice.sell(p[1], p[2].toInt()))
"refund" -> println(BoxOffice.refund(p[1].toInt()))
else -> println(BoxOffice.report())
}
}
println("tickets issued: ${Ticket.issued}")
}
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ç Alma3Nesneler ve Eşlikçiler
Nesne BildirimleriEşlikçi Nesnelerconst ile SabitlerNesne İfadeleriTekrar - Bilet GişesiKendi başına pratik yap: Kotlin playground