Latest web development tutorials

Swift-Klasse

Swift-Klasse ist der Code verwendet, um eine allgemeine und flexible Struktur zu bauen.

Wir können die Eigenschaften (Konstanten, Variablen) und Methoden für die Klasse definieren.

Und andere Programmiersprachen sind unterschiedlich, Swift nicht benötigen Sie benutzerdefinierte Klassen zu trennen Schnittstelle und Implementierung von Dateien zu erstellen. Sie haben zu tun, es ist eine Klasse in einer einzigen Datei zu definieren, wird das System automatisch den Code für andere externe Schnittstellen erzeugen.

Körperbau und Strukturvergleich

Swift Klassen und Strukturen haben viel gemeinsam. Üblich ist, dass:

  • Definierte Attribute zum Speichern von Werten verwendet,
  • Definiert eine Methode zur Bereitstellung von Funktionalität
  • Definierte Skript wird verwendet, um den Wert der Tochtergesellschaft für den Zugriff auf
  • Definieren Sie den Konstruktor wird verwendet Initialisierung Wert zu erzeugen
  • Durch die Erweiterung der implementierten Funktionen, um den Standard zu erhöhen
  • In Übereinstimmung mit dem Abkommen bestimmte Standardfunktionen zur Verfügung zu stellen

Im Vergleich mit der Struktur, Klasse hat die folgenden zusätzlichen Funktionen:

  • Die Vererbung ermöglicht eine Klasse erbt von einer anderen Klasse Feature
  • Typumwandlung erlaubt Laufzeit Typprüfung und Interpretation einer Klasseninstanz
  • Deconstruction ermöglicht eine Klasseninstanz alle Ressourcen freizugeben zugeordnet
  • Referenzzählung 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 
}

Instanziieren Sie die Klasse:

let studrecord = student()

Beispiele

import Cocoa

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

class studentMarks {
    var mark = 300
}
let marks = studentMarks()
print("成绩为 \(marks.mark)")

Die obige Programmausführung Ausgabe ist:

成绩为 300

Als Referenztypen der Klasse Attribut

Attribute der Klasse zugegriffendurch werden.Das Format ist:instantiate Klassenname Eigenschaftsname:

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

Die obige Programmausführung Ausgabe ist:

Mark1 is 300
Mark2 is 400
Mark3 is 900

Identitätsoperator

Weil Klassen Referenztypen sind, kann es zur gleichen Zeit ein Hinweis auf eine Klasseninstanz im Hintergrund eine Vielzahl von Konstanten und Variablen sein.

Um festgestellt, ob die beiden Konstanten oder Variablen zur selben Klasse Instanz beziehen, gebaut Swift zwei identische Operatoren:

Identitätsoperatornonidentical Betreiber
Die Betreiber sind: === Die Betreiber sind :! ==
Wenn die beiden Konstanten oder Variablen verweisen auf die gleiche Instanz einer Klasse return true Wenn zwei unterschiedliche konstante oder variable Bezüge eine Klasseninstanz gibt true zurück

Beispiele

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("引用相同的类实例 \(spClass1)")
}

if spClass1 !== spClass2 {// true
    print("引用不相同的类实例 \(spClass2)")
}

Die obige Programmausführung Ausgabe ist:

引用不相同的类实例 SampleClass