Что такое неполное и полное копирование?
Копирование - это операция, которая есть в каждом языке программирования будь то PHP, Java или Python. И если с простыми типами данных (числа, например) все более-менее просто, то с объектами - все немного по-другому. Поэтому в данной статье, я хочу рассказать Вам, что такое неполное (поверхностное) и глубокое копирование.
Копирование объекта - это процесс, в котором свойства одного объекта копируются в другой объект того же типа данных.
Что такое неполное копирование?
При неполном копировании создается новый объект, а затем в него копируются поля текущего объекта. Если поле исходного объекта является простым типом, то значение этого поля просто копируется в тоже самое поле нового объекта. Если же поле является ссылочным типом, копируется сама ссылка , поэтому исходный объект и его клон ссылаются на один и тот же объект.
Что такое глубокое копирование?
Глубокое копирование создает новый объект, а затем копирует все поля текущего объекта в новый объект. Если поле исходного объекта является простым типом, то значение этого поля просто копируется в тоже самое поле нового объекта. Если поле является ссылочным типом, создается полная новая копия упомянутого объекта. Глубокая копия объекта - это новый объект с совершенно новыми переменными экземпляра, он не разделяет объекты со старым объектом.
Таким образом, копирование - это на первый взгляд простой, но в тоже время сложный процесс, который имеет важное значение вне зависимости от языка программирования.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.