English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Classe Swift

La classe Swift est un constructeur universel et flexible utilisé pour construire du code.

Nous pouvons définir des propriétés (constantes, variables) et des méthodes pour les classes.

Contrairement aux autres langages de programmation, Swift ne nécessite pas de créer des fichiers d'interface et de mise en œuvre séparés pour les classes personnalisées. Ce que vous devez faire est de définir une classe dans un seul fichier, et le système générera automatiquement une interface externe pour d'autres codes.

Comparaison entre classe et structure

Classe et structure en SwiftStructureIl y a beaucoup de points communs. Ce qui est commun :

  • Définition des propriétés pour stocker des valeurs

  • Définition des méthodes pour fournir des fonctionnalités

  • Définition des sous-programmes pour accéder aux valeurs

  • Définition des constructeurs pour générer des valeurs initiales

  • Par extension pour ajouter des implémentations par défaut

  • Conformité aux protocoles pour fournir des fonctionnalités standard pour un type

En plus des structures, les classes ont les fonctionnalités supplémentaires suivantes :

  • L'héritage permet à une classe d'hériter des caractéristiques d'une autre classe

  • La conversion de type permet de vérifier et d'interpréter le type d'une instance de classe au moment de l'exécution

  • Le destructeur permet à une instance de classe de libérer toutes les ressources qu'elle a allouées

  • Le comptage de référence permet de faire plusieurs références à une classe

Syntaxe:

class classname {
   Définition 1
   Définition 2
   ……
   Définition N
}

Définition de la classe

class student{
   var studname: String
   var mark: Int 
   var mark2: Int 
}

Instance de la classe :

let studrecord = student()

Exemple en ligne

import Cocoa
class MarksStruct {
    var mark: Int
    init(mark: Int) {
        self.mark = mark
    }
}
class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("La note est \(marks.mark)")

Le résultat de l'exécution du programme ci-dessus est :

La note est 300

accédé en tant que type de référence

Les attributs de la classe peuvent être . pour accéder. Le format est :Nom de la classe. Nom de l'attribut:

import Cocoa
class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}
class studentMarks {
   var mark1 = 300
   var mark2 = 400
   var mark3 = 900
}
let marks = studentMarks()
print("Mark1 est \(marks.mark1)")
print("Mark2 est \(marks.mark2)")
print("Mark3 est \(marks.mark3)")

Le résultat de l'exécution du programme ci-dessus est :

Mark1 est 300
Mark2 est 400
Mark3 est 900

Opérateur d'égalité

Comme les classes sont des types de référence, il est possible qu'il y ait plusieurs constantes et variables en arrière-plan qui référencent une instance de classe donnée en même temps.

Pour pouvoir déterminer si deux constantes ou variables référencent la même instance de classe, Swift inclut deux opérateurs d'égalité :

Opérateur d'égalitéOpérateur de non-égalité
L'opérateur est : ===L'opérateur est : !==
Retourne true si deux constantes ou variables référencent la même instance de classeRetourne true si deux constantes ou variables référencent une instance de classe différente

Exemple en ligne

import Cocoa
class SampleClass: Equatable {
    let myProperty: String
    init(s: String) {
        myProperty = s
    }
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
    return lhs.myProperty == rhs.myProperty
}
let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")
if spClass1 === spClass2 {// false
    print("Exemple de classe avec référence identique \(spClass1)")
}
if spClass1 !== spClass2 {// true
    print("Exemple de classe avec référence différente \(spClass2)")
}

Le résultat de l'exécution du programme ci-dessus est :

Exemple de classe avec référence différente SampleClass