Разница между абстракцией и инкапсуляцией данных

Оглавление:

Anonim

Основное различие между абстракцией данных и инкапсуляцией заключается в том, что абстракция данных скрывает детали реализации и показывает пользователю только функциональные возможности, чтобы уменьшить сложность кода, в то время как инкапсуляция связывает или объединяет данные и методы вместе в единый блок и скрывает детали для защиты данных.

Объектно-ориентированное программирование (ООП) помогает моделировать сценарии реального мира в программном обеспечении. Это парадигма или методология разработки программы с использованием классов и объектов. Класс - это план для создания объекта. Другими словами, это структура для создания объектов. Он состоит из атрибутов и методов. Атрибуты описывают свойства или данные, а методы описывают операции или поведение. Невозможно создавать объекты без классов. Следовательно, объект является экземпляром класса. Абстракция данных и инкапсуляция - две концепции в ООП.

Абстракция данных, инкапсуляция, ООП

Что такое абстракция данных

Абстракция данных означает сокрытие внутренних деталей и простое отображение функциональности. Другими словами, он скрывает детали реализации и просто представляет функции внешнему миру. Один из реальных примеров - телевизор. Пользователю не нужно знать внутренние электронные схемы и функции, чтобы смотреть телевизор. Другой пример - мобильный телефон. Пользователю не нужно знать внутреннюю обработку. Ему просто нужно знать основные функции, такие как совершение телефонных звонков, отправка сообщений или просмотр веб-страниц в Интернете.

Абстракция данных дает преимущества при разработке программного обеспечения. Что наиболее важно, это снижает сложность кода. Кроме того, он скрывает детали и раскрывает основные функции. Языки поддержки ООП помогают добиться абстракции данных с помощью абстрактных классов и интерфейсов.

Что такое инкапсуляция

Инкапсуляция объединяет данные и методы в единое целое. Основная цель инкапсуляции - защитить данные. Он похож на медицинскую капсулу. Лекарство находится внутри капсулы и защищено от внешнего мира.

Рисунок 01: Инкапсуляция

Метод достижения инкапсуляции заключается в использовании модификаторов доступа, таких как «частный» и «общедоступный». Они изменяют видимость данных или методов. Частные члены доступны только внутри класса, в то время как общедоступные члены доступны внутри класса и для других классов.

Можно реализовать инкапсуляцию на языке ООП, сделав элементы данных или свойства частными и получив к ним доступ через общедоступные методы, такие как методы получения и установки. Точно так же инкапсуляция сжимает данные и метод в один блок. Более того, он обеспечивает защиту данных.

Разница между абстракцией и инкапсуляцией данных

Определение

Абстракция данных - это концепция ООП, которая скрывает детали реализации и показывает пользователю только функциональные возможности. Инкапсуляция - это концепция ООП, которая связывает или объединяет данные и методы в единый блок.

Основное использование

Абстракция данных скрывает детали реализации, чтобы уменьшить сложность кода, в то время как инкапсуляция скрывает данные с целью защиты данных. Это основное различие между абстракцией данных и инкапсуляцией в отношении их использования.

Метод достижения

Языки ООП используют абстрактные классы и интерфейсы для достижения абстракции данных. Напротив, языки ООП могут обеспечить инкапсуляцию, сделав элементы данных частными и получив к ним доступ через общедоступные методы.

Заключение

Абстракция и инкапсуляция данных - две концепции в ООП (объектно-ориентированное программирование). Разница между абстракцией данных и инкапсуляцией заключается в том, что абстракция данных скрывает детали реализации, чтобы уменьшить сложность кода, в то время как инкапсуляция скрывает детали для защиты данных.

Ссылка:

1. Учебное пособие. «Инкапсуляция Java». Www.tutorialspoint.com, Tutorials Point, 24 марта 2018 г., доступно здесь 2. «Абстракция в Java». GeeksforGeeks, 14 ноября 2017 г., доступно здесь 3. «Инкапсуляция в Java». Javatpoint, доступен здесь.

Разница между абстракцией и инкапсуляцией данных