Menu
Coddy logo textTech

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
3

Bir 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
Bella

Bir 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 2

Tü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
    }
}
challenge icon

Görev

Kolay

Pet 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())
quiz iconKendini test et

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

Kendi başına pratik yap: Swift playground