Swift - Cours

Les classes de Swift 4 sont des éléments constitutifs de constructions flexibles. Comme pour les constantes, les variables et les fonctions, l'utilisateur peut définir des propriétés de classe et des méthodes. Swift 4 nous fournit la fonctionnalité qui, lors de la déclaration de classes, les utilisateurs n'ont pas besoin de créer des interfaces ou des fichiers d'implémentation. Swift 4 nous permet de créer des classes sous la forme d'un fichier unique et les interfaces externes seront créées par défaut une fois les classes initialisées.

Avantages d'avoir des cours

  • L'héritage acquiert les propriétés d'une classe à une autre classe

  • Le cast de type permet à l'utilisateur de vérifier le type de classe au moment de l'exécution

  • Les déinitialiseurs prennent soin de libérer les ressources mémoire

  • Le comptage de références permet à l'instance de classe d'avoir plus d'une référence

Caractéristiques communes des classes et des structures

  • Les propriétés sont définies pour stocker des valeurs
  • Les indices sont définis pour donner accès aux valeurs
  • Les méthodes sont initialisées pour améliorer la fonctionnalité
  • L'état initial est défini par les initialiseurs
  • Les fonctionnalités sont étendues au-delà des valeurs par défaut
  • Confirmation des normes de fonctionnalité du protocole

Syntaxe

Class classname {
   Definition 1
   Definition 2
   --- 
   Definition N
}

Définition de classe

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

La syntaxe de création d'instances

let studrecord = student()

Exemple

class MarksStruct {
   var mark: Int
   init(mark: Int) {
      self.mark = mark
   }
}

class studentMarks {
   var mark = 300
}

let marks = studentMarks()
print("Mark is \(marks.mark)")

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

Mark is 300

Accès aux propriétés de classe en tant que types de référence

Les propriétés de classe sont accessibles par le '.' syntaxe. Le nom de la propriété est séparé par un "." après le nom de l'instance.

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 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

Mark1 is 300
Mark2 is 400
Mark3 is 900

Opérateurs d'identité de classe

Les classes dans Swift 4 font référence à plusieurs constantes et variables pointant vers une seule instance. Pour connaître les constantes et les variables pointant vers une instance de classe particulière, des opérateurs d'identité sont utilisés. Les instances de classe sont toujours passées par référence. Dans les classes, les instances NSString, NSArray et NSDictionary sont toujours attribuées et transmises en tant que référence à une instance existante, plutôt qu'en tant que copie.

Identique aux opérateurs Pas identique aux opérateurs
L'opérateur utilisé est (===) L'opérateur utilisé est (! ==)
Renvoie true lorsque deux constantes ou variables pointant vers une même instance Renvoie true lorsque deux constantes ou variables pointant vers une instance différente
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")

spClass1 === spClass2 // false
print("\(spClass1)")

spClass1 !== spClass2 // true
print("\(spClass2)")

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

main.SampleClass
main.SampleClass