devstory

Classe et Objet en Swift

View more Tutorials:

Suivez-nous sur notre fanpage pour recevoir des notifications chaque fois qu'il y a de nouveaux articles. Facebook

1- Votre première classe

Swift est un langage hérité de C et Objective-C, il est à la fois un langage procédural, à la fois comme langue orientée objet. La classe (Class) est un concept du langage de programmation orienté objet. La classe a des propriétés et des méthodes, naturellement, la méthode (method) est comprise comme une fonction de la classe. De la classe, vous pouvez créer des objets.
Swift utilise le mot-clé de la class pour déclarer une classe.
Créez un fichier de ressources Rectangle.swift:
Rectangle.swift

import Foundation 

class Rectangle  { 
    // width property
    var width: Int = 5; 
    // height property
    var height: Int = 10;
    
    // Constructeur par défaut (aucun paramètre)
    // (Utilisé pour créer une instance).
    init()  {
        
    } 
    // Contructeur avec 2 paramètres.
    // (Utilisé pour créer une instance)
    // self.width fait référence à la propriété width de la classe
    init (width: Int, height: Int)  {
        self.width = width
        self.height = height
        
    } 
    // Une méthode calcule la surface du rectangle.
    func getArea()  -> Int  { 
        var area = self.width * self.height
        return area
    } 
}
Le code utilise la classe Rectangle pour créer l'objet.
RectangleTest.swift

import Foundation 

func test_rectangle()  { 
    print("Create a Rectangle rec1"); 
    // Créez un objet Rectangle
    // via le constructeur par défaut: init ()
    var rec1  = Rectangle() 
    
    // Imprimez la largeur d'impression et la hauteur
    print("rec1.width = \(rec1.width)")
    print("rec1.height = \(rec1.height)")
    
    // Appelez la méthode pour calculer la zone.
    var area1 = rec1.getArea() 
    print("area1 = \(area1)") 
    print("---------") 
    print("Create a Rectangle rec2");
    
    // Créez un objet Rectangle
    // via le contructeur avec 2 paramètres: init (Int, Int)
    var rec2 = Rectangle(width: 10, height: 15) 
    
    // Imprimez la largeur d'impression et la hauteur
    print("rec2.width = \(rec2.width)")
    print("rec2.height = \(rec2.height)") 
    // Appelez la méthode pour calculer la zone.
    var area2 = rec2.getArea() 
    print("area2 = \(area2)") 
}
Éditez le fichier main.swift pour tester cet exemple:
main.swift

import Foundation

test_rectangle()
 
L'exécution de l'exemple:

Create a Rectangle rec1
rec1.width = 5
rec1.height = 10
area1 = 50
----------
Create a Rectangle rec2
rec2.width = 10
rec3.height = 15
area2 = 150
Maintenant, vous devriez voir l'explication de la classe, c'est très important.
Que se passe-t-il lorsque vous créez un objet par défaut constructeur (default constructor)?
Créez un objet Rectangle par le constructeur avec deux paramètres.

2- La règles d'appel du Constructeur

Des règles Swift 2.1 pour appeler une fonction (function), une méthode (method), et un constructeur (constructor):
  • Le premier paramètre passe aux fonctions (ou aux méthodes) n'a pas besoin d'étiquettes (Label) d'argument
  • Les autres paramètres passe aux fonctions (ou aux méthodes) exigent les étiquettes d'argument.
  • Tous les paramètres passent aux Constructeurs devraient avoir des étiquettes (Label) d'argument

3- Des opérateurs de comparaison de l'objet

Dans Swift, lorsque vous créez un objet via le constructeur (Constructor), il sera une entité réelle qui est créée en mémoire, elle a une adresse spécifiée.

Un opérateur assigné à un objet AA par un objet BB ne crée pas une nouvelle entité sur la mémoire; il indique simplement l'adresse de AA à l'adresse de BB.
L'opérateur === est utilisé pour comparer deux objets qui indiquent, il renvoie true si les deux objets se réfèrent à la même adresse en mémoire. Les opérateurs !== est utilisé pour comparer les deux adresses de deux objets qui indiquent, il renvoie true si les deux objets pointent vers deux adresses différentes.
IdentifyOperator.swift

import Foundation


func identifyOperator()    {
    
    // Créez l'objet: r1
    var r1 = Rectangle(width: 20,height: 10)
    
    // Créez l'objet : r2
    var r2 = Rectangle(width: 20,height: 10)
    
    var r3 = r1
    
    
    var  b12:Bool =   r1 === r2
    var  b13:Bool =   r1 === r3
    
    print("r1 === r2 ?  \(b12)") // false
    print("r1 === r3 ?  \(b13)") // true
    
    
    var bb12: Bool = r1 !== r2
    var bb13: Bool = r1 !== r3
    
    
    print("r1 !== r2 ?  \(b12)") // true
    print("r1 !== r3 ?  \(b13)") // false
    
}
L'exécution de l'exemple:

r1 === r2 ? false
r1 === r3 ? true
r1 !== r2 ? false
r1 !== r3 ? true

View more Tutorials:

Peut-être que vous êtes intéressé

Voici des leçons en ligne à part du site web o7planning que nous recommandons. La liste comprend des leçons en ligne et celles en promo.