Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Напоминание
• struct (структура) – в Java отсутствует
• Value type - ключевое отличие от class, в остальном много схожестей
• Многие встроенные типы являются структурой (String, Int, Dictionary, Array и пр.)
• Поддерживает не все принципы ООП
• class (класс)
• Reference type
• Более сложные объекты
• Поддерживает все принципы ООП
• Если нужен ссылочный тип (чтобы несколько переменных могли ссылаться на один объект, например при передаче в параметр метода) –
используйте класс
• Для Java разработчиков более привычна концепция класса, а не структуры, т.к. поведение похоже на Java классы
init
• В отличии от struct – в Java более сложная схема работы с инциализаторами (из-за возможностей наследования классов, т.к. struct
наследование не поддерживает)
• Класс не создает автоматически memberwise initializer (заполняет все свойства), как это было в struct
• Класс может создавать default initializer, при условии что все свойства при объявлении принимают значения по-умолчанию
• Понятия:
• Designated initializer (главный, определяющий) – задает все свойства
• В классе должен быть хотя бы один designated initializer
• Принимает параметры и задает значения всех пустых свойств
• Не может вызывать convenience init или designated init из этого же класса (через self)
• Может (должен, если есть родительский класс) вызывать только родительский designated init (через super)
• Прочитать (повторно):
• https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStruc
tures.html