DevPrep

Все темы › Основные понятия программирования

Класс

Junior

Суть

Класс — описание типа объектов: какие у них свойства, методы и инициализаторы. Это чертёж, по которому создаются экземпляры. В Swift класс — reference type: экземпляр живёт в куче, переменные хранят ссылку на него, а время жизни управляет ARC.

Что отличает класс в Swift

class Animal {
    let name: String
    init(name: String) { self.name = name }
    func sound() -> String { "..." }
    deinit { print("\(name) released") }
}

final class Dog: Animal {                  // final: наследовать дальше нельзя
    override func sound() -> String { "Woof" }
}

func demo() {
    var pet: Animal? = Dog(name: "Rex")
    let same = pet                         // вторая ссылка на тот же объект
    print(pet!.sound())  // Woof — динамическая диспетчеризация
    pet = nil                              // объект жив: его держит same
    print(same?.name ?? "nil")             // Rex
}                                          // same ушёл → "Rex released"

Класс vs struct — вопрос, который зададут следующим

Apple рекомендует начинать со struct и брать class, когда нужны идентичность (общий изменяемый ресурс, контроллер, кэш), наследование от системных классов (UIView, NSObject) или deinit.

На что смотрит интервьюер

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store