Menu
CoddyTech

Klassen definieren

Teil des Abschnitts Objektorientierte Programmierung der Swift-Journey von Coddy. Lektion 2 von 57.

Eine Klasse beschreibt eine Art von Objekt: die Daten, die jedes Objekt enthält, und was es tun kann. class Dog { ... } deklariert den Typ, und Dog() erstellt ein Objekt dieses Typs, auch Instanz genannt:

class Dog {
    var name = "Rex"
    var age = 3
}

let dog = Dog()
print(dog.name)
print(dog.age)

Ausgabe:

Rex
3

Die Variablen innerhalb einer Klasse sind ihre Eigenschaften. Jede Instanz hat ihre eigene Kopie, die mit einem Punkt gelesen und geändert wird:

class Dog {
    var name = "Rex"
    var age = 3
}

let first = Dog()
let second = Dog()
second.name = "Bella"
print(first.name)
print(second.name)

Ausgabe:

Rex
Bella

Eine Funktion innerhalb einer Klasse ist eine Methode. Eine Methode kann die Eigenschaften der Instanz lesen und ändern, auf der sie aufgerufen wird:

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())

Ausgabe:

count is 2

Typnamen werden in UpperCamelCase geschrieben (BankAccount); Eigenschaften und Methoden in lowerCamelCase (balance, deposit()). Die Daten und die Funktionen, die mit ihnen arbeiten, in einem Typ zusammenzufassen, ist die Grundidee der objektorientierten Programmierung: Code, der einen Counter verwendet, ruft increment() auf und muss nie wissen, wie der Zähler gespeichert wird.

class BankAccount {
    var balance = 0

    func deposit(_ amount: Int) {
        balance += amount
    }
}
challenge icon

Aufgabe

Einfach

Vervollständige die Methode describe() der Klasse Pet. Sie gibt einen Satz zurück, der aus den Eigenschaften gebildet wird: Ein Haustier namens Rex, der Spezies dog und dem Alter 3 ergibt Rex is a 3 year old dog.

Der bereitgestellte Code erstellt ein Pet, setzt seine Eigenschaften anhand der Eingabe (Name, Spezies, Alter) und gibt das Ergebnis von describe() aus.

Dein Code gehört in Pet.swift. main.swift enthält den bereitgestellten Ein-/Ausgabecode und kann nicht bearbeitet werden.

Probier es selbst

// Bereitgestellter Ein-/Ausgabecode: unverändert lassen
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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Swift-Playground