Инкапсуляция против абстракции
Инкапсуляция и абстракция - это две разные, но взаимосвязанные концепции языков ООП (объектно-ориентированного программирования). Инкапсуляция - это концепция объединения данных и поведения в единое целое. С другой стороны, абстракция - это процесс представления того, как сущность ведет себя / выглядит в противоположность тому, как она реализована.
Что такое инкапсуляция?
Инкапсуляция - это процесс упаковки данных и операций, которые с ними работают, в одну сущность. По сути, это означает, что для доступа к данным следует использовать определенные предопределенные методы. Другими словами, инкапсулированные данные напрямую недоступны. Это гарантирует сохранение целостности данных, поскольку пользователь не может напрямую обращаться к данным и изменять их по своему желанию. Пользователи будут получать или устанавливать значения данных только с помощью методов, которые общедоступны для пользователей. Эти методы обычно обеспечивают проверку данных, так что в поля разрешается вставлять только данные в соответствующем формате. Таким образом, инкапсуляция имеет три преимущества. Посредством инкапсуляции программист может сделать поля класса доступными только для чтения или только для записи. Во-вторых,класс может иметь полный контроль над тем, что хранится в его полях. Наконец, пользователям класса не нужно беспокоиться о том, как хранятся его данные. В Java программист может объявить все переменные экземпляра закрытыми и предоставить методы get и set (которые являются общедоступными) для доступа и изменения закрытых полей.
Что такое абстракция?
Абстракция - это процесс отделения деталей презентации от деталей реализации. Это сделано для того, чтобы разработчик избавился от более сложных деталей реализации. Вместо этого программист может сосредоточиться на презентации или деталях поведения объекта. Проще говоря, абстракция фокусируется на том, как можно использовать определенную сущность, а не на том, как она реализована. Абстракция по существу скрывает детали реализации, так что даже если методология реализации со временем изменится, программисту не придется беспокоиться о том, как это повлияет на его программу. Система может быть разделена на несколько слоев или уровней. Например, низкоуровневые уровни абстракции раскрывают детали оборудования, а высокоуровневые абстракции раскрывают только бизнес-логику объекта. Термин «абстракция» может использоваться для обозначения как сущности, так и процесса, и это приводит к некоторой путанице. В качестве процесса абстракция означает извлечение важных деталей при игнорировании несущественных деталей элемента или группы элементов, в то время как в качестве сущности абстракция означает модель или представление сущности только с существенными деталями. В Java программист может использовать ключевое слово abstract для объявления класса как абстрактного объекта, который представляет основные определяющие характеристики объекта реального мира.программист может использовать ключевое слово abstract для объявления класса абстрактной сущностью, которая представляет основные определяющие характеристики сущности реального мира.программист может использовать ключевое слово abstract для объявления класса как абстрактного объекта, который представляет основные определяющие характеристики объекта реального мира.
В чем разница между инкапсуляцией и абстракцией?
Несмотря на то, что инкапсуляция и абстракция являются тесно связанными понятиями в языках объектно-ориентированного программирования, они имеют ключевые различия. Абстракция - это метод, который помогает нам определить, что должно быть видно, а что скрыто. Инкапсуляция - это методы упаковки информации таким образом, чтобы сделать видимым то, что должно быть видно, и скрыть то, что следует скрыть. Другими словами, инкапсуляцию можно определить как шаг за пределы абстракции. В то время как абстракция уменьшает объект реального мира до его основных определяющих характеристик, инкапсуляция расширяет эту идею, моделируя и связывая эту функциональность этого объекта.