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 class, bir nesne türünü tanımlar: her nesnenin tuttuğu verileri ve yapabildiği şeyleri. class Dog { ... } türü bildirir ve Dog() bu türden, aynı zamanda bir instance olarak da adlandırılan bir nesne oluşturur:
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 onun özellikleridir. Her örneğin kendine ait bir kopyası vardır; bu kopya nokta gösterimiyle 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
BellaBir sınıfın içindeki işlev metot olarak adlandırılır. Bir metot, üzerinde ç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 (BankAccount) ile; özellikler ve yöntemler lowerCamelCase (balance, deposit()) ile yazılır. Verileri ve bunlar üzerinde çalışan işlevleri tek bir tür içinde bir araya getirmek, nesne yönelimli programlamanın temel fikridir: bir Counter kullanan kod increment() çağrısını yapar ve sayının nasıl saklandığını bilmesine asla gerek kalmaz.
class BankAccount {
var balance = 0
func deposit(_ amount: Int) {
balance += amount
}
}Görev
KolayPet sınıfının describe() yöntemini tamamla. Bu yöntem, ö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.
Verilen kod bir Pet oluşturur, özelliklerini girdiden (ad, tür, yaş) ayarlar ve describe() sonucunu yazdırır.
Kodun Pet.swift dosyasına yazılmalıdır. main.swift verilen girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
// Sağlanan girdi/çıktı 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