- Mar 12, 2025
[12/16] Introduction aux classes et structures en Swift
Introduction
Jusqu’à présent, vous avez appris à manipuler des types simples : String, Int, Bool, des tableaux, ou encore des dictionnaires. Mais dès que votre application devient un peu plus complexe, vous aurez besoin de modéliser des objets du monde réel. C’est exactement à cela que servent les classes et les structures en Swift.
Une classe ou une structure vous permet de créer vos propres types de données, adaptés à votre application. Par exemple, si vous développez une application de suivi sportif, vous pourriez vouloir représenter un utilisateur avec un prénom, un âge et un score. Plutôt que d’utiliser trois variables séparées, vous pouvez créer un seul type personnalisé qui regroupe toutes ces informations.
Dans ce chapitre, vous allez apprendre à :
créer des structures et des classes,
comprendre à quoi elles servent,
distinguer les différences entre les deux,
manipuler des objets dans du code Swift.
Déclarer une structure (struct)
Commençons par la structure, un outil simple et très utilisé en Swift.
struct Utilisateur {
var prenom: String
var age: Int
func saluer() {
print("Bonjour, je m’appelle \(prenom) et j’ai \(age) ans.")
}
}
Dans cet exemple, vous venez de définir un nouveau type de donnée personnalisé nommé Utilisateur. Il contient :
deux propriétés :
prenometage,une méthode :
saluer()qui affiche une phrase avec les informations de l’utilisateur.
Créer une instance de structure
var utilisateur1 = Utilisateur(prenom: "Alice", age: 30)
utilisateur1.saluer()
💬 Ce code crée un nouvel utilisateur et appelle la méthode saluer, qui affichera :
Bonjour, je m’appelle Alice et j’ai 30 ans.
Vous venez de créer un objet à partir de votre structure.
Déclarer une classe (class)
Les classes sont très similaires aux structures, mais avec quelques particularités. Voici comment en créer une :
class Animal {
var nom: String
var espece: String
init(nom: String, espece: String) {
self.nom = nom
self.espece = espece
}
func decrire() {
print("\(nom) est un(e) \(espece).")
}
}
Explication :
Les propriétés
nometespecesont définies comme dans une structure,Le mot-clé
initpermet de créer un initialiseur, utilisé pour créer une instance de la classe,Le mot-clé
selffait référence à l’instance en cours.
Créer une instance de classe
let chat = Animal(nom: "Mimi", espece: "chat")
chat.decrire()
Résultat :
Mimi est un(e) chat.
Différences entre struct et class
Même si les deux se ressemblent, il existe des différences importantes :
Structure (struct) :
Type valeur
Copie indépendante lors d’une affectation
Pas d’héritage possible
Utilisée pour des types simples ou des données modélisées
Classe (class) :
Type référence
Partage la même instance entre plusieurs variables
Prend en charge l’héritage (une classe peut hériter d’une autre)
Utilisée pour des comportements plus complexes ou personnalisés
Voici un exemple pour comprendre la différence entre les deux :
struct Point {
var x: Int
var y: Int
}
var pointA = Point(x: 0, y: 0)
var pointB = pointA
pointB.x = 10
print(pointA.x) // 0
print(pointB.x) // 10
🔍 Ici, pointA et pointB sont deux copies différentes.
Maintenant, faisons la même chose avec une classe :
class Coordonnees {
var x: Int
var y: Int
init(x: Int, y: Int) {
self.x = x
self.y = y
}
}
var coordA = Coordonnees(x: 0, y: 0)
var coordB = coordA
coordB.x = 10
print(coordA.x) // 10
💡 Ici, coordA et coordB pointent vers la même instance. Modifier coordB modifie aussi coordA.
Quand utiliser une structure ou une classe ?
Il est recommandé d’utiliser une structure (struct) par défaut, sauf si vous avez un besoin spécifique qui nécessite :
un partage d’instance entre plusieurs objets,
l’utilisation de l’héritage,
un cycle de vie complexe à gérer (références croisées, désallocation…).
Pour la plupart des types de données simples, les structures sont plus sûres, plus performantes et encouragées en Swift.
Exemple concret : une fiche produit
Imaginons une application de gestion d’inventaire. Voici un exemple de structure utile :
struct Produit {
var nom: String
var prix: Double
func afficherFiche() {
print("Produit : \(nom) - Prix : \(prix) €")
}
}
let cafe = Produit(nom: "Café", prix: 4.5)
cafe.afficherFiche()
Sortie attendue :
Produit : Café - Prix : 4.5 €
Ce genre de struct simplifie l’organisation des données dans des projets concrets.
Conclusion
Les classes et structures sont deux outils essentiels pour structurer vos données et organiser votre code.
Une structure (
struct) est simple, légère, et copie ses valeurs.Une classe (
class) permet plus de flexibilité, notamment grâce à l’héritage et à la gestion par référence.
✅ Par défaut, privilégiez les structures. Réservez les classes pour des cas plus complexes.
Comprendre la différence entre ces deux types vous permettra d’écrire un code Swift plus clair, plus sûr, et plus adapté à vos projets. À présent, essayez de créer votre propre structure pour représenter un livre, avec un titre, un auteur et une méthode pour afficher sa description !