• Mar 13, 2025

[13/16] Propriétés et méthodes en Swift

Introduction

Lorsque vous créez vos propres types avec des classes ou des structures, vous avez besoin d’y intégrer des informations (comme le nom d’un utilisateur ou le prix d’un produit) et des actions (comme afficher une description ou calculer un total). C’est ici qu’entrent en jeu les propriétés et les méthodes.

Ce chapitre vous aidera à comprendre :

  • ce qu’est une propriété,

  • ce qu’est une méthode,

  • comment les intégrer dans vos classes et structures,

  • comment les utiliser dans des cas concrets.


Qu’est-ce qu’une propriété ?

Une propriété est une variable ou constante qui appartient à une instance d’une classe ou d’une structure. Elle sert à stocker des données liées à cet objet.

Voici un exemple :

struct Voiture {
    var marque: String
    var annee: Int
}

let maVoiture = Voiture(marque: "Toyota", annee: 2020)
print(maVoiture.marque) // Affiche : Toyota

Ici, marque et annee sont des propriétés de la structure Voiture. Chaque instance de Voiture possède ses propres valeurs pour ces propriétés.


Qu’est-ce qu’une méthode ?

Une méthode est une fonction intégrée dans une classe ou une structure. Elle permet de faire agir un objet, souvent en utilisant ou en modifiant ses propriétés.

Voici un exemple :

struct Voiture {
    var marque: String
    var annee: Int

    func afficherDescription() {
        print("\(marque) - \(annee)")
    }
}

let maVoiture = Voiture(marque: "Toyota", annee: 2020)
maVoiture.afficherDescription() // Affiche : Toyota - 2020

La méthode afficherDescription permet à chaque voiture d’afficher une phrase personnalisée.

📌 Une méthode peut lire les propriétés, mais aussi les modifier si elle est définie dans une variable (var) et si la méthode est marquée comme mutating (dans le cas d'une structure).


Propriétés stockées vs calculées

Il existe deux grands types de propriétés :

  1. Propriétés stockées : celles que vous déclarez normalement avec une valeur.

  2. Propriétés calculées : leur valeur est calculée dynamiquement à partir d’autres propriétés.

Voici un exemple :

struct Rectangle {
    var largeur: Double
    var hauteur: Double

    var surface: Double {
        return largeur * hauteur
    }
}

let monRectangle = Rectangle(largeur: 5, hauteur: 10)
print(monRectangle.surface) // Affiche : 50

Ici, surface est une propriété calculée. Elle ne stocke pas directement une valeur, elle la calcule à la volée.


Méthodes modifiantes (mutating)

Dans une structure, les méthodes qui modifient les propriétés doivent être marquées avec le mot-clé mutating.

struct Compteur {
    var valeur = 0

    mutating func incrementer() {
        valeur += 1
    }
}

var compteur = Compteur()
compteur.incrementer()
print(compteur.valeur) // Affiche : 1

Sans mutating, Swift empêche de modifier la valeur à l’intérieur de la méthode.


Exemple concret : une fiche utilisateur

Imaginons une application où vous souhaitez représenter un utilisateur avec un prénom, un nombre de points, et une action pour ajouter des points :

struct Utilisateur {
    var prenom: String
    var points: Int

    mutating func ajouterPoints(_ bonus: Int) {
        points += bonus
    }

    func afficherInfos() {
        print("\(prenom) a \(points) points.")
    }
}

var utilisateur = Utilisateur(prenom: "Sophie", points: 120)
utilisateur.ajouterPoints(30)
utilisateur.afficherInfos() // Affiche : Sophie a 150 points.

Ce code illustre parfaitement comment les propriétés stockent les données, tandis que les méthodes agissent sur ces données.


Conclusion

Les propriétés et méthodes sont au cœur de la programmation orientée objet en Swift. Elles vous permettent de structurer vos données (avec les propriétés) et de leur donner un comportement (avec les méthodes).

Dans ce chapitre, vous avez appris :

  • à déclarer des propriétés simples et calculées,

  • à écrire des méthodes pour agir sur vos données,

  • à comprendre la différence entre structure et classe vis-à-vis des méthodes,

  • à utiliser mutating pour les structures.

✅ En combinant propriétés et méthodes, vous êtes désormais capables de créer des objets puissants, organisés, et expressifs.

0 comments

Sign upor login to leave a comment