концепция ООП инкапсуляции и абстракции - PullRequest
3 голосов
/ 11 октября 2010

Имеет ли Encapsulation значение Скрытие информации или это приводит к скрытию информации ??

Как мы говорим, Encapsulation связывает данные и функции в одном объекте, таким образом, обеспечиваямы контролируем поток данных, и мы можем получить доступ к данным объекта только через некоторые четко определенные функции.Поэтому, когда мы говорим, что инкапсуляция ведет к абстракции или скрытию информации, это означает, что она дает нам представление о том, какие данные скрывать и какие данные показывать пользователям ... потому что данные, к которым пользователи не могут получить доступ, могут быть скрыты от них, таким образом инкапсуляциянам метод, чтобы выяснить, какие данные должны быть скрыты, а какие должны быть видны ... Правильно ли это понятие?

А в чем разница между сокрытием информации и абстракцией ??

Ответы [ 7 ]

3 голосов
/ 11 октября 2010

Возможный дубликат this

public class Guest {
  private String name;

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

См. Приведенный выше код, мы инкапсулировали имя String, мы предоставляем доступ к нему через открытые методы.

Скажем, мы создали объект Guest под названием guest.Тогда следующее будет недопустимым.

System.out.println("Guests name  : "guest.name);

Доступ через общедоступные методы - это то, что можно сделать только.

guest.getName();

Преимущества инкапсуляции:

  1. Поля класса могут быть доступны только для чтения или только для записи.

  2. Класс может иметь полный контроль над тем, что хранится в его полях.

  3. Пользователи класса не знают, как класс хранит свои данные.Класс может изменять тип данных поля, и пользователям класса не нужно изменять какой-либо их код.

2 голосов
/ 09 января 2013

Инкапсуляция означает скрытие реализации

Абстракция означает предоставление плана реализации

Скрытие данных означает управление доступом к DataMember или атрибутам

1 голос
/ 28 сентября 2013

Инкапсуляция говорит о сокрытии данных во что-то и присвоении им имени (частные данные в классе - Car) и связывает методы поведения с ним, которые изменят или предоставят доступ к этим переменным данных.Перспектива клиента в абстрактных терминах.Как концепция или идея.Car - это конкретная сущность, в которой Drivable, Trackable (который имеет позицию и может быть отслежен) может быть абстракцией для Car для разных клиентов.

Вы можете проверить некоторые реальные примеры абстракций и Инкапсуляция здесь .

1 голос
/ 30 июня 2013

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

Средство инкапсуляции ...

  • Объединение объекта Состояние и поведение (которое воздействует на это состояние) в одну единицу. Это близко имитирует Объект реального мира.

  • Сокрытие и защита состояния объекта от случайных внешних изменений путем предоставления четко определенного контролируемого доступа (посредством поведения).

В Java определение может быть детализировано как ...

  • В Java Классы и Enums представляют собой отдельные единицы для реализации инкапсуляции. Состояние определяется с помощью переменных (примитивы, ссылки на объекты), а поведение - с помощью методов.

  • Скрытие данных достигается с помощью частного спецификатора доступа к переменным (чтобы никто не мог получить к ним доступ извне).

  • Контролируемый доступ достигается путем предоставления методов получения / установки и / или методов бизнес-логики. И сеттеры, и другие методы, влияющие на состояние, должны иметь проверку граничных условий для поддержания логически правильного состояния.

0 голосов
/ 03 августа 2014

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

0 голосов
/ 30 марта 2014

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

Абстракция относится к представлению существенных признаков.

0 голосов
/ 02 февраля 2013

Абстракция означает поиск важных характеристик объекта и игнорирование других деталей.

Например, если вы рассматриваете автомобиль: абстрактное определение автомобиля - это транспортное средство с четырьмя колесами и рулевое управление.колесо и двигатель.Детали того, как работает рулевое управление или марки автомобиля, не имеют значения, что делает объект автомобилем.

Подробное объяснение доступно по значению абстракции в концепциях объектно-ориентированного программирования .

...