Swift klasy
Swift klasa jest kod używany do budowy ogólnej i elastyczną strukturę.
Możemy zdefiniować właściwości (stałe, zmienne) i metody klasy.
I inne języki programowania są różne, Swift nie wymaga tworzenia własnych klas do oddzielnych plików interfejsu i wdrażania. Trzeba to zrobić jest zdefiniowanie klasy w pojedynczym pliku, system automatycznie generuje kod dla innych interfejsów zewnętrznych.
Ciało i porównania struktury
Swift klas i konstrukcje mają wiele wspólnego. Często jest to, że:
- Zdefiniowane atrybuty używane do przechowywania wartości
- Określa sposób zapewniania funkcji
- Zdefiniowany skrypt służy do uzyskania dostępu do wartości zależnej
- Definiowanie konstruktora jest używany do generowania wartości inicjalizacji
- Rozszerzając funkcje realizowane w celu zwiększenia domyślne
- Zgodnie z umową, aby zapewnić pewne funkcje standardowe
W porównaniu ze strukturą, klasa posiada następujące dodatkowe funkcje:
- Dziedziczenie pozwala klasa dziedziczy z innej klasy funkcji
- Typ konwersji umożliwia sprawdzenie typu wykonawcze i interpretacji instancji klasy
- Dekonstrukcja pozwala instancję klasy, aby wyzwolić wszelkie zasoby, przyznane
- Liczenie referencyjny umożliwia wiele odwołań do klasy
Składnia:
Class classname { Definition 1 Definition 2 …… Definition N }
definicja klasy
class student{ var studname: String var mark: Int var mark2: Int }
Instancję klasy:
let studrecord = student()
Przykłady
import Cocoa class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark = 300 } let marks = studentMarks() print("成绩为 \(marks.mark)")
Wyjście powyżej wykonywanie programu jest:
成绩为 300
Jako atrybut typy referencyjne klasy
Atrybuty klasy mogą być dostępneza pośrednictwem.Format jest następujący:Nazwa instancji klasy Nazwa obiektu:
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)")
Wyjście powyżej wykonywanie programu jest:
Mark1 is 300 Mark2 is 400 Mark3 is 900
operator Identity
Ponieważ zajęcia są typy referencyjne, może istnieć wiele stałych i zmiennych jednocześnie odwołanie do instancji klasy w tle.
W celu ustalić, czy dwie stałe lub zmienne odnoszą się do tej samej instancji klasy, Swift zbudowany z dwóch identycznych operatorów:
operator Identity | operator nieidentycznych |
---|---|
Operatorzy są: === | Operatorzy są :! == |
Jeśli dwa stałe lub zmienne odwołują się do tej samej instancji o powrocie klasy prawdziwej | Jeśli dwóch różnych odniesień stałej lub zmiennej instancji klasy zwraca true |
Przykłady
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)") }
Wyjście powyżej wykonywanie programu jest:
引用不相同的类实例 SampleClass