English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 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
class classname { Definition 1 Definition 2 …… Definition N }
class student{ var studname: String var mark: Int var mark2: Int }
Beispiel der Klasse:
let studrecord = student()
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
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
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 Operator | Nicht-equality Operator |
---|---|
Der Operator ist: === | Der Operator ist: !== |
Gibt true zurück, wenn zwei Konstanten oder Variablen auf das gleiche Beispielobjekt einer Klasse verweisen | Gibt true zurück, wenn zwei Konstanten oder Variablen auf verschiedene Beispielobjekte einer Klasse verweisen |
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