Menu
Coddy logo textTech

Klassen definieren

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

Eine class 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 besitzt ihre eigene Kopie, auf die mit einem Punkt zugegriffen und die damit 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 darauf arbeitenden Funktionen in einem Typ zusammenzufassen, ist die Grundidee der objektorientierten Programmierung: Code, der einen Counter verwendet, ruft increment() auf und muss nie wissen, wie die Zählung 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 aus den Eigenschaften gebildeten Satz zurück: Ein Haustier mit dem Namen Rex, der Tierart dog und dem Alter 3 ergibt Rex is a 3 year old dog.

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

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

Probier es selbst

// Bereitgestellter Input/Output-Code: belasse ihn wie er ist
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