Swift - Классы

Классы в Swift 4 - это строительные блоки гибких конструкций. Подобно константам, переменным и функциям пользователь может определять свойства и методы класса. Swift 4 предоставляет нам функциональные возможности, которые при объявлении классов пользователям не нужно создавать интерфейсы или файлы реализации. Swift 4 позволяет нам создавать классы как один файл, и внешние интерфейсы будут созданы по умолчанию после инициализации классов.

Преимущества занятий

  • Наследование приобретает свойства одного класса другому классу

  • Приведение типов позволяет пользователю проверять тип класса во время выполнения

  • Деинициализаторы заботятся об освобождении ресурсов памяти

  • Подсчет ссылок позволяет экземпляру класса иметь более одной ссылки

Общие характеристики классов и структур

  • Свойства определены для хранения значений
  • Индексы определены для предоставления доступа к значениям
  • Методы инициализируются для улучшения функциональности
  • Начальное состояние определяется инициализаторами
  • Функциональные возможности расширены за пределы значений по умолчанию
  • Подтверждение стандартов функциональности протокола

Синтаксис

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

Определение класса

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

Синтаксис для создания экземпляров

let studrecord = student()

пример

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

class studentMarks {
   var mark = 300
}

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

Когда мы запускаем вышеуказанную программу с помощью игровой площадки, мы получаем следующий результат -

Mark is 300

Доступ к свойствам класса как ссылочным типам

Доступ к свойствам класса можно получить через '.' синтаксис. Название свойства разделяется знаком "." после имени экземпляра.

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

Когда мы запускаем вышеуказанную программу с помощью игровой площадки, мы получаем следующий результат -

Mark1 is 300
Mark2 is 400
Mark3 is 900

Операторы идентификации класса

Классы в Swift 4 ссылаются на несколько констант и переменных, указывающих на один экземпляр. Чтобы узнать о константах и ​​переменных, указывающих на конкретный экземпляр класса, используются операторы идентификации. Экземпляры классов всегда передаются по ссылке. В классах экземпляры NSString, NSArray и NSDictionary всегда назначаются и передаются как ссылка на существующий экземпляр, а не как копия.

Идентично операторам Не идентичны операторам
Используемый оператор (===) Используемый оператор (! ==)
Возвращает истину, если две константы или переменные указывают на один и тот же экземпляр. Возвращает истину, если две константы или переменные указывают на другой экземпляр
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)")

Когда мы запускаем вышеуказанную программу с помощью игровой площадки, мы получаем следующий результат -

main.SampleClass
main.SampleClass