Swift класс
Swift класс код, который используется для построения общего и гибкую структуру.
Мы можем определить свойства (константы, переменные) и методы класса.
И другие языки программирования разные, Swift не требует от вас, чтобы создавать собственные классы для разделения интерфейса и реализации файлов. Вы должны сделать это, чтобы определить класс в одном файле, то система будет автоматически генерировать код для других внешних интерфейсов.
Тип кузова и сравнение структуры
Swift классы и структуры имеют много общего. Общие является то, что:
- Задаваемые атрибуты, используемые для хранения значений
- Определяет способ предоставления функциональных возможностей
- Определенный сценарий используется для доступа к значению дочернего
- Определить конструктор используется для генерации значения инициализации
- Расширяя функции, реализуемые с целью увеличения по умолчанию
- В соответствии с соглашением, чтобы обеспечить некоторые стандартные функции
По сравнению со структурой, класс имеет следующие дополнительные возможности:
- Наследование позволяет класс наследует от другого класса функции
- Преобразование типа позволяет проверку типа во время выполнения и интерпретации экземпляра класса
- Деконструкция позволяет экземпляр класса, чтобы освободить любые ресурсы, выделенные
- Подсчет ссылок позволяет несколько ссылок на класс
Синтаксис:
Class classname { Definition 1 Definition 2 …… Definition 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
В качестве атрибута класса ссылочные типы
Атрибуты класса могут быть доступнычерез.Формат:Instantiate имя класса имя свойства:
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 построены два одинаковых операторов:
тождественный оператор | нетождественной оператор |
---|---|
Операторы: === | Операторы :! == |
Если две константы или переменные ссылаются на тот же экземпляр класса возвращает истину | Если два различных постоянных или переменных ссылок экземпляр класса возвращает истину |
примеров
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("引用相同的类实例 \(spClass1)") } if spClass1 !== spClass2 {// true print("引用不相同的类实例 \(spClass2)") }
Выход выше выполнение программы:
引用不相同的类实例 SampleClass