Можешь объяснить, что такое composition в объектно-ориентированном программировании и как оно создаёт отношение "has-a" между классами? — ДейлиПреп