English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Классы Swift - это универсальные и гибкие структуры, используемые для создания кода.
Мы можем определить атрибуты класса (константы, переменные) и методы.
В отличие от других языков программирования, Swift не требует создания отдельных файлов интерфейсов и реализаций для пользовательских классов. Всякое, что вам нужно сделать, это определить класс в одном файле, и система автоматически сгенерирует внешний интерфейс для другого кода.
Классы иСтруктураЕсть много общих моментов. Общее место заключается в том, что:
Атрибуты определения используются для хранения значений
Метод определения используется для предоставления функций
Определение附属ных скриптов используется для доступа к значениям
Определение конструкторов используется для создания начальных значений
Расширения позволяют добавлять функции по умолчанию
Соответствие протоколам предоставляет стандартные функции для класса
По сравнению со структурой, класс имеет следующие дополнительные функции:
Инheritance позволяет классу наследовать характеристики другого класса
Типовые преобразования позволяют проверять и интерпретировать тип примера класса во время выполнения
Деструкторы позволяют примеру класса освободить любые ресурсы, которые он занял
Счетчики ссылок позволяют производить несколько ссылок на класс
class classname { 1 определение 2 определение …… N определение {}
class student{ var studname: String var mark: Int var mark2: Int {}
Пример класса:
let studrecord = student()
import Cocoa class MarksStruct { var mark: Int init(mark: Int) { self.mark = mark {} {} class studentMarks { var mark = 300 {} let marks = studentMarks() print("Оценка \(marks.mark)")
Результат выполнения программы выше:
Оценка 300
Свойства класса можно получить . для доступа.Формат:Имя класса.Имя свойств:
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)")
Результат выполнения программы выше:
Mark1 is 300 Mark2 is 400 Mark3 is 900
Поскольку класс является типом ссылки, возможно, что несколько констант и переменных в фоновом режиме будут ссылаться на один и тот же пример класса.
Чтобы определить, ссылаются ли две константы или переменные на один и тот же пример класса, Swift имеет два нулевых оператора:
Нулевой оператор | Ненулевой оператор |
---|---|
Оператор: === | Оператор: !=== |
Если две константы или переменные ссылаются на один и тот же пример класса, возвращается true | Если две константы или переменные ссылаются на различные пример класса, возвращается true |
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("Пример класса с одинаковыми ссылками SampleClass \(spClass1)") {} if spClass1 !== spClass2 { // true print("Пример класса с различающимися ссылками SampleClass \(spClass2)") {}
Результат выполнения программы выше:
Пример класса с различающимися ссылками SampleClass