Учебники

Свифт — Классы

Классы в 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()

пример

Live Demo

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

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

Свойства класса могут быть доступны с помощью «.» синтаксис. Имя свойства отделяется знаком «.» после имени экземпляра.

Live Demo

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 всегда назначаются и передаются как ссылки на существующий экземпляр, а не как копия.

Идентичен операторам Не идентичен операторам
Оператор используется (===) Оператор используется (! ==)
Возвращает true, когда две константы или переменные указывают на один и тот же экземпляр Возвращает true, когда две константы или переменные указывают на другой экземпляр

Live Demo

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

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