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