Classe et Objet en Swift
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.
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
Tutoriels de programmation Swift
- Installer la machine virtuelle Mac OS en VMWare
- Installer XCode
- Tutoriel Swift pour débutant
- Le Tutoriel de Swift Function
- Le Tutoriel de Swift Closure
- Classe et Objet en Swift
- Le Tutoriel de Swift Enum
- Le Tutoriel de Swift Struct
- Programmation pour l'équipe utilisant XCode et SVN
Show More