kelas Swift
kelas Swift adalah kode yang digunakan untuk membangun struktur umum dan fleksibel.
Kita dapat mendefinisikan sifat (konstanta, variabel) dan metode untuk kelas.
Dan bahasa pemrograman lainnya berbeda, Swift tidak mengharuskan Anda untuk membuat kelas khusus untuk antarmuka dan implementasi file terpisah. Anda harus melakukannya adalah untuk mendefinisikan kelas dalam satu file, sistem akan secara otomatis menghasilkan kode untuk antarmuka eksternal lainnya.
Tipe tubuh dan struktur perbandingan
kelas Swift dan struktur memiliki banyak kesamaan. Umum adalah bahwa:
- atribut yang didefinisikan digunakan untuk menyimpan nilai-nilai
- Mendefinisikan sebuah metode untuk menyediakan fungsionalitas
- Script didefinisikan digunakan untuk mengakses nilai anak perusahaan
- Mendefinisikan konstruktor digunakan untuk menghasilkan nilai inisialisasi
- Dengan memperluas fungsi diimplementasikan dalam rangka meningkatkan default
- Sejalan dengan kesepakatan untuk menyediakan fungsi standar tertentu
Dibandingkan dengan struktur, kelas memiliki fitur tambahan berikut:
- Warisan memungkinkan kelas mewarisi dari fitur kelas lain
- jenis konversi memungkinkan Jenis runtime pemeriksaan dan interpretasi contoh kelas
- Dekonstruksi memungkinkan contoh kelas untuk melepaskan sumber daya yang dialokasikan
- Referensi menghitung memungkinkan beberapa referensi untuk kelas
sintaks:
Class classname { Definition 1 Definition 2 …… Definition N }
definisi kelas
class student{ var studname: String var mark: Int var mark2: Int }
Instantiate kelas:
let studrecord = student()
contoh
import Cocoa class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } class studentMarks { var mark = 300 } let marks = studentMarks() print("成绩为 \(marks.mark)")
Output di atas eksekusi program adalah:
成绩为 300
Sebagai atribut referensi jenis Kelas
Atribut kelas dapat diaksesmelalui.Formatnya adalah:instantiate nama kelas nama properti:
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)")
Output di atas eksekusi program adalah:
Mark1 is 300 Mark2 is 400 Mark3 is 900
operator identitas
Karena kelas yang referensi jenis, mungkin ada sejumlah konstanta dan variabel pada saat yang sama referensi ke instance kelas di latar belakang.
Untuk ditentukan apakah dua konstanta atau variabel mengacu pada contoh kelas yang sama, Swift dibangun dua operator yang identik:
operator identitas | Operator nonidentical |
---|---|
Operator adalah: === | Operator :! == |
Jika dua konstanta atau variabel referensi contoh sama kembali kelas yang benar | Jika dua konstan atau variabel referensi yang berbeda contoh kelas mengembalikan nilai true |
contoh
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)") }
Output di atas eksekusi program adalah:
引用不相同的类实例 SampleClass