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

Swift-Klassen

Swift-Klassen sind ein allgemeines und flexibles Konstrukt, das zur Erstellung von Code verwendet wird.

Wir können Attribute (Konstanten, Variablen) und Methoden für Klassen definieren.

Im Gegensatz zu anderen Programmiersprachen erfordert Swift nicht, dass Sie für benutzerdefinierte Klassen separate Interface- und Implementierungsdateien erstellen. Was Sie tun müssen, ist, eine Klasse in einer einzigen Datei zu definieren, und das System generiert automatisch eine externe Schnittstelle für anderes Code.

Klassen und Strukturen im Vergleich

Klassen in Swift undStrukturEs gibt viele Gemeinsamkeiten. Gemeinsamkeiten sind:

  • Die Definition von Attributen wird verwendet, um Werte zu speichern

  • Die Definition von Methoden wird verwendet, um Funktionen bereitzustellen

  • Die Definition von Klassenvariablen wird verwendet, um Werte abzurufen

  • Die Definition des Konstruktors wird verwendet, um Initialisierungswerte zu generieren

  • Durch Erweiterungen können Funktionen mit Standardimplementierungen erweitert werden

  • Durch Konformität mit Protokollen können Standardfunktionen für eine Klasse bereitgestellt werden

Im Vergleich zu Strukturen haben Klassen zusätzliche Funktionen wie:

  • Die Vererbung ermöglicht es einer Klasse, die Eigenschaften einer anderen Klasse zu übernehmen

  • Der Typumwandlung ermöglicht es, den Typ eines Beispielobjekts zur Laufzeit zu überprüfen und zu interpretieren

  • Der Destructor ermöglicht es einem Beispielobjekt einer Klasse, alle zugewiesenen Ressourcen freizugeben

  • Der Referenzzähler ermöglicht mehrere Verweise auf eine Klasse

Syntax:

class classname {
   Definition 1
   Definition 2
   ……
   Definition N
}

Klassendefinition

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

Beispiel der Klasse:

let studrecord = student()

Online-Beispiel

import Cocoa
class MarksStruct {
    var mark: Int
    init(mark: Int) {
        self.mark = mark
    }
}
class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("Die Note beträgt \(marks.mark)")

Die Ausgabe des obigen Programms ist:

Die Note beträgt 300

als Referenztyp auf die Klasse zugegriffen werden

Die Attribute einer Klasse können über . um darauf zuzugreifen. Die Formatierung ist:Beispielname.Attributname:

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

Die Ausgabe des obigen Programms ist:

Mark1 ist 300
Mark2 ist 400
Mark3 ist 900

Equality Operator

Da Klassen Referenztypen sind, kann es mehrere Konstanten und Variablen geben, die gleichzeitig auf ein bestimmtes Beispielobjekt einer Klasse verweisen.

Um zu bestimmen, ob zwei Konstanten oder Variablen auf das gleiche Beispielobjekt einer Klasse verweisen, hat Swift zwei Equality-Operatoren eingebaut:

Equality OperatorNicht-equality Operator
Der Operator ist: ===Der Operator ist: !==
Gibt true zurück, wenn zwei Konstanten oder Variablen auf das gleiche Beispielobjekt einer Klasse verweisenGibt true zurück, wenn zwei Konstanten oder Variablen auf verschiedene Beispielobjekte einer Klasse verweisen

Online-Beispiel

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("Beispiel einer Klasse mit gleichen Referenzen	\(spClass1)")
}
if spClass1 !== spClass2 {// true
    print("Beispiel einer Klasse mit verschiedenen Referenzen	\(spClass2)")
}

Die Ausgabe des obigen Programms ist:

Beispiel einer Klasse mit verschiedenen Referenzen	SampleClass