Swift - Kelas

Kelas di Swift 4 adalah blok bangunan konstruksi fleksibel. Mirip dengan konstanta, variabel, dan fungsi, pengguna dapat menentukan properti dan metode kelas. Swift 4 memberi kita fungsionalitas yang saat mendeklarasikan kelas, pengguna tidak perlu membuat antarmuka atau file implementasi. Swift 4 memungkinkan kita membuat kelas sebagai file tunggal dan antarmuka eksternal akan dibuat secara default setelah kelas diinisialisasi.

Manfaat memiliki Kelas

  • Inheritance memperoleh properti dari satu kelas ke kelas lain

  • Jenis casting memungkinkan pengguna untuk memeriksa jenis kelas pada waktu proses

  • Deinitializers menangani pelepasan sumber daya memori

  • Penghitungan referensi memungkinkan instance kelas memiliki lebih dari satu referensi

Karakteristik Umum Kelas dan struktur

  • Properti ditentukan untuk menyimpan nilai
  • Langganan ditentukan untuk memberikan akses ke nilai
  • Metode diinisialisasi untuk meningkatkan fungsionalitas
  • Keadaan awal ditentukan oleh penginisialisasi
  • Fungsionalitas diperluas melampaui nilai default
  • Mengonfirmasi standar fungsionalitas protokol

Sintaksis

Class classname {
   Definition 1
   Definition 2
   --- 
   Definition N
}

Definisi Kelas

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

Sintaks untuk membuat instance

let studrecord = student()

Contoh

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

class studentMarks {
   var mark = 300
}

let marks = studentMarks()
print("Mark is \(marks.mark)")

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

Mark is 300

Mengakses Properti Kelas sebagai Jenis Referensi

Properti kelas dapat diakses oleh '.' sintaksis. Nama properti dipisahkan dengan '.' setelah nama instance.

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)")

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

Mark1 is 300
Mark2 is 400
Mark3 is 900

Operator Identitas Kelas

Kelas di Swift 4 mengacu pada beberapa konstanta dan variabel yang menunjuk ke satu contoh. Untuk mengetahui tentang konstanta dan variabel yang menunjuk ke operator identitas instance kelas tertentu digunakan. Instance kelas selalu diteruskan dengan referensi. Dalam Classes NSString, NSArray, dan NSDictionary instance selalu ditetapkan dan diedarkan sebagai referensi ke instance yang ada, bukan sebagai salinan.

Identik dengan Operator Tidak Identik dengan Operator
Operator yang digunakan adalah (===) Operator yang digunakan adalah (! ==)
Mengembalikan nilai true ketika dua konstanta atau variabel menunjuk ke instance yang sama Mengembalikan nilai true ketika dua konstanta atau variabel menunjuk ke instance berbeda
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")

spClass1 === spClass2 // false
print("\(spClass1)")

spClass1 !== spClass2 // true
print("\(spClass2)")

Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -

main.SampleClass
main.SampleClass