Menu
Coddy logo textTech

Définir des classes

Fait partie de la section Programmation orientée objet du Journey Swift de Coddy. Leçon 2 sur 57.

Une classe décrit un type d’objet : les données que chaque objet contient et ce qu’il peut faire. class Dog { ... } déclare le type, et Dog() crée un objet de ce type, également appelé une instance :

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

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

Sortie :

Rex
3

Les variables à l’intérieur d’une classe sont ses propriétés. Chaque instance possède sa propre copie, que l’on lit et modifie avec un point :

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

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

Sortie :

Rex
Bella

Une fonction à l’intérieur d’une classe est une méthode. Une méthode peut lire et modifier les propriétés de l’instance sur laquelle elle est appelée :

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

Sortie :

count is 2

Les noms de types s’écrivent en UpperCamelCase (BankAccount) ; les propriétés et les méthodes en lowerCamelCase (balance, deposit()). Regrouper les données et les fonctions qui les manipulent dans un même type constitue l’idée fondamentale de la programmation orientée objet : le code qui utilise un Counter appelle increment() et n’a jamais besoin de savoir comment le compteur est stocké.

class BankAccount {
    var balance = 0

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

Défi

Facile

Complétez la méthode describe() de la classe Pet. Elle renvoie une phrase construite à partir des propriétés : un animal nommé Rex, d’espèce dog et âgé de 3 ans donne Rex is a 3 year old dog.

Le code fourni crée un Pet, définit ses propriétés à partir de l’entrée (nom, espèce, âge) et affiche le résultat de describe().

Votre code doit être placé dans Pet.swift. main.swift contient le code d’entrée/sortie fourni et ne peut pas être modifié.

Essayez vous-même

// Code d'entrée/sortie fourni : le garder tel quel
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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation orientée objet

Entraînez-vous par vous-même : Playground Swift