Для ответа на ваш вопрос я предполагаю, что под «эффективностью памяти» вы подразумеваете «использование как можно меньшего количества памяти»
Нет никакой связи между инкапсуляцией данных и эффективностью памяти.
Эффективность памяти зависит от нескольких низкоуровневых аспектов, таких как то, как примитивные значения представляются в памяти, как объекты (включая массивы) представляются в памяти, как они объединяются / объединяются и т. Д. Все это аспекты не имеют ничего общего с инкапсуляцией данных.
Инкапсуляция данных происходит в исходном коде , а не на нижних уровнях. Если в исходном коде вы видите, что данные и код, который манипулирует данными, «тесно связаны» друг с другом (например, с помощью некоторой языковой функции, такой как определение класса), это называется инкапсуляцией данных.