Sınıfları Tanımlama
Coddy'nin Swift Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 2 / 57.
Bir sınıf, bir nesne türünü tanımlar: her nesnenin tuttuğu verileri ve neler yapabildiğini. class Dog { ... } türü bildirir ve Dog() bu türden bir nesne oluşturur; bu nesneye örnek de denir:
class Dog {
var name = "Rex"
var age = 3
}
let dog = Dog()
print(dog.name)
print(dog.age)Çıktı:
Rex
3Bir sınıfın içindeki değişkenler, o sınıfın özellikleridir. Her örneğin kendine ait bir kopyası vardır; bu kopya nokta kullanılarak okunur ve değiştirilir:
class Dog {
var name = "Rex"
var age = 3
}
let first = Dog()
let second = Dog()
second.name = "Bella"
print(first.name)
print(second.name)Çıktı:
Rex
BellaSınıfın içindeki bir fonksiyon metot olarak adlandırılır. Bir metot, çağrıldığı örneğin özelliklerini okuyabilir ve değiştirebilir:
class Counter {
var count = 0
func increment() {
count += 1
}
func report() -> String {
"count is \(count)"
}
}
let clicks = Counter()
clicks.increment()
clicks.increment()
print(clicks.report())Çıktı:
count is 2Tür adları UpperCamelCase biçiminde (BankAccount); özellikler ve metotlar ise lowerCamelCase biçiminde (balance, deposit()) yazılır. Verileri ve bu veriler üzerinde çalışan işlevleri tek bir türde bir araya getirmek, nesne yönelimli programlamanın temel fikridir: Counter kullanan kod increment() çağırır ve sayının nasıl saklandığını bilmek zorunda kalmaz.
class BankAccount {
var balance = 0
func deposit(_ amount: Int) {
balance += amount
}
}Görev
KolayPet sınıfının describe() metodunu tamamlayın. Bu metot, özelliklerden oluşturulan tek bir cümle döndürür: adı Rex, türü dog ve yaşı 3 olan bir evcil hayvan için Rex is a 3 year old dog döndürür.
Verilen kod bir Pet oluşturur, özelliklerini girdiden (ad, tür, yaş) ayarlar ve describe() metodunun sonucunu yazdırır.
Kodunuz Pet.swift dosyasına yazılmalıdır. main.swift dosyası verilen girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
// Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
var input: [String] = []
while let line = readLine() { input.append(line) }
let pet = Pet()
pet.name = input[0]
pet.species = input[1]
pet.age = Int(input[2])!
print(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ımlamaMetotlar ve selfBaşlatıcılarSınıflar ReferanstırTekrar - Kütüphane Kartı4Kapsülleme
Erişim DenetimiDışarıdan Salt OkunurDurumu KorumaBaşarısız Olabilen BaşlatıcılarTekrar - Banka Hesabı7Polimorfizm ve Generic'ler
PolimorfizmTür DönüşümüGeneric FonksiyonlarGeneric TürlerTekrar - Şekil Hesaplayıcı2Struct Yapıları ve Değer Türleri
Struct YapılarıDeğer SemantiğiDeğiştirici MetotlarStruct mı Class mıTekrar - Envanter Öğesi5Kalıtım
Alt sınıflarMetotları Geçersiz KılmaBaşlatıcılar ve superfinal ve HiyerarşilerTekrar - Çalışan Hiyerarşisi11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Swift playground