Classe et Objet en Swift
View more Tutorials:
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:

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.

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
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.
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:
