English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Swift

Операторы Swift

Контроль потока Swift

Коллекции Swift

Функции Swift

Swift продвинутый

Классы Swift

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