Je suppose que vous avez maintenant hâte de vous lancer dans le code orienté objet. Alors j'ai le plaisir de vous annoncer que...c'est parti !
Déclarez une classe
Il faut d'abord commencer par le commencement, et le commencement de la POO en Swift, ce sont les classes. Une classe, c'est ce qui va nous permettre de définir nos objets. En Swift, pour écrire une classe, on utilise la syntaxe suivante :
class NameOfMyClass {
// Ici viendra le contenu de la classe
}
Par exemple, on a vu dans notre diagramme de classes que l'on souhaite créer trois classes : Bus
, Road
et RoadSection
. Pour faire cela, nous allons donc écrire simplement :
class Bus {
}
class Road {
}
class RoadSection {
}
Et voilà ! Il ne suffit de rien de plus pour créer nos classes ! Bien sûr, pour le moment, elles sont relativement vides, mais elles vont s'épaissir au fur et à mesure.
Mais on en fait quoi, de ces classes ?
Évidemment, pour le moment ça ne paraît pas hyper impressionnant. Mais vous allez voir tout de suite que c'est plus puissant qu'il n'y paraît.
Maîtrisez les classes et les types
Vous vous souvenez des types ? Vous en connaissez un petit paquet maintenant !
Jusqu'à présent, vous savez faire des programmes en manipulant les types. À partir de maintenant, vous allez aussi travailler avec les types que vous avez créés !
Comment ça, les types que nous avons créés ?
Eh oui ! Les classes Bus
, Road
et RoadSection
sont des types. Exactement de la même façon que Int
, String
, Bool
et les autres ! Donc la bonne surprise de ce chapitre, c'est que vous savez maintenant créer des types !
Instanciez les classes
Vous vous souvenez que pour créer des variables de types entiers, par exemple, on pouvait écrire simplement :
var i = 0
Mais on a aussi appris qu'on pouvait utiliser l'initialisation du type par défaut, avec le nom du type et les parenthèses :
var i = Int() // i contient 0
var s = String() // s contient ""
Eh bien nous allons faire la même chose. Pour créer une variable de type Bus, nous allons utiliser le nom de la classe et les parenthèses :
var bus = Bus()
Et voilà, rien de plus simple ! Nous venons de créer ce que l'on appelle une instance de la classe Bus. Et on appelle ce mécanisme l'instanciation.
La classe, c'est le modèle. Par exemple, la classe Int définit la façon dont fonctionne un entier, ses propriétés et quelques méthodes pratiques pour les manipuler.
Maintenant, si j'écris :
var i = 0
var j = 1
i
et j
sont des entiers précis. On dit qu'ils sont des instances de la classe Int
. On peut faire une infinité d'instances à partir d'une classe. Toutes les instances de la classe auront les mêmes propriétés.
Prenons une métaphore pour bien comprendre. Lorsque vous faites des gaufres, vous utilisez un gaufrier. En fonction du gaufrier vont varier l'imprimé sur la gaufre, sa largeur, son épaisseur, etc. Donc le gaufrier définit la gaufre. Et ensuite, vous pouvez faire autant de gaufres que vous le souhaitez, elles auront toutes une structure identique, et seul va varier ce que vous mettrez dessus.
Si vous m'avez suivi, le gaufrier représente la classe. Les instances sont les représentations concrètes de cette classe.
De toute façon, si vous savez qu'une classe permet de définir un type, vous ne vous tromperez pas !
À vous de jouer !
Pour continuer avec notre histoire de bus scolaire, je vous propose de créer une classe Student qui représente nos élèves qui vont à l’école.
Le contenu de l’exercice se trouve dans le dossier Github P2C1.
Ouvrez un nouveau Playground Xcode.
Copiez le contenu du fichier “main.swift” dans votre Playground.
Suivez les instructions.
En résumé
Pour déclarer une classe avec Swift, on utilise le mot-clé
class
comme ceci :
class NameOfMyClass {
// Ici viendra le contenu de la classe
}
Une classe s'utilise exactement comme un type. Lorsque l'on crée une classe, on crée un type.
Une classe représente un concept. On appelle les représentations concrètes de cette classe des instances. Pour créer une instance, on utilise le nom de la classe suivi de parenthèses :
var instance =NameOfMyClass()
Bravo ! Désormais vous pouvez créer vos propres types ! On se retrouve dans le prochain chapitre pour découvrir une nouvelle notion fondamentale de la POO, les propriétés.