Revenir

Entre ton email pour recevoir le guide complet pour apprendre Swift peu importe ton niveau

Les types de propriétés et méthodes

Les types de propriétés et méthodes

Les types de propriétés sont quelque chose qui peuvent être très utiles s’ils sont correctement compris et utilisés.

Premièrement, les propriétés privées. Ce sont des propriétés accessibles uniquement par des instances de la classe mais pas par ses sous-classes.

Voici comment les déclarer :

class Person {
    private var weight = 90
}

Elles sont utilisées quand on veut limiter l’accès aux propriétés. Ça marche aussi avec les méthodes.

Ensuite, les propriétés et méthodes statiques. Ce sont des propriétés et méthodes accessibles sans passer par une instance de la classe ou structure.

Par exemple, imaginons un petit jeu vidéo. Je crée une classe pour représenter les personnages et leurs actions.

Disons que les personnage ont une vitesse de déplacement et que je souhaite coder l’animation de déplacement des personnages. Plutôt que d’écrire partout la valeur de vitesse de chaque personnage (sachant qu’elle peut être différente pour chacun) je peux créer une propriété statique pour accéder à la vitesse de chaque personnage sans l’instancier.

Ainsi, je peux récupérer la vitesse du personnage sans créer de personnage.

Mais ce n’est pas tout !

Supposons qu’un jour je trouve que certains personnages sont lents.

Si j’ai créé une propriété statique, je n’aurai à modifier la vitesse qu’à un seul endroit et ça va se répercuter sur tous les endroits où je l’ai utilisé.

Alors que si j’avais écrit simplement la vitesse de chaque personnage à chaque endroit où elle est utilisée, je risque d’oublier certains endroits, de perdre du temps à devoir comprendre que j’ai oublié un endroit, et perdre du temps à mettre la même valeur partout.

J’espère que ce petit exemple vous aura aidé à comprendre un peu mieux l’utilité des classes et des propriétés statiques.

Voici comment les utiliser :

class Player {
    // propriété statique
    static var speed = 15

    // méthode statique
    static func increaseSpeed(speed: Int) {
        self.speed = speed
    }
}

// accès à la propriété statique
print(Player.speed)
// fonctionne de la même manière pour la méthode statique

Quelque chose d’un peu plus complexe maintenant. Les propriétés calculées.

Elles portent bien leurs noms. Ce sont des propriétés calculées à partir d’autres propriétés ou variables.

Voici un exemple :

struct Point {
    var x = 0
    var y = 0
}

struct Rect {
    let first = Point()
    let second = Point(x: 2, y: 0)
    let third = Point(x: 0, y: 1)
    let fourth = Point(x: 2, y: 1)
    
    // propriété calculée
    var surface: Int {
        let length = second.x - first.x
        let height = fourth.y - first.y
        return length * height
    }
}

Ici, la surface du rectangle est calculée à partir des sa largeur et sa hauteur.

Il existe un tas d’autres fonctionnalités sur les propriétés calculées mais je vous ai donné la base. N’hésitez pas à chercher par vous-mêmes quand vous en aurez besoin, je ne veux pas vous embrouiller avec ça pour le moment.

À présent, les variables lazy.

À quoi servent-elles ?

Elles servent à affecter la valeur à la variable seulement au moment où elle est utilisée.

Ça peut augmenter les performances et la vitesse de votre code si elles sont utilisées sur des variables qui nécessitent de faire des calculs.

Si on reprend l’exemple précédent :

class UsersImporter {
    // Imaginons que cette classe récupère les utilisateurs avec une requête sur un serveur ce qui prend du temps en fonction de la connexion Internet
}

class User {
    // avec lazy, les informations de l'utilisateur ne sont pas chargées à la création de l'objet mais quand on accèdera la propriété userInfos
    lazy var userInfos = UsersImporter()
}

J’espère que l’exemple vous a fait comprendre l’utilité de ce type de variables.

Voilà pour cet article, j’espère qu’il vous aura aidé à comprendre un peu plus l’utilité des classes si vous débutez et à vous faire découvrir les différents types de propriétés et méthodes !