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

Что означает абстракция данных? Просьба предоставить примеры реальной жизни вместе.

Ответ 1

Абстракция состоит из двух частей:

  • Скрыть детали, которые не имеют значения с определенной точки зрения
  • Определите детали, которые имеют значение с определенной точки зрения, и рассмотрите элементы класса того же, если они обладают этими деталями.

Например, если я разрабатываю программу для работы с инвентаризацией, я хотел бы узнать, сколько элементов определенного типа система имеет на складе. С точки зрения системы интерфейса мне все равно, получаю ли я эту информацию из базы данных, csv файла, удаленного репозитория через интерфейс SOAP или перфокарты. Мне просто интересно, что я могу сказать widget.get_items_in_stock() и знаю, что он вернет целое число.

Если позже я решит, что хочу записать это число каким-то другим способом, человеку, разрабатывающему интерфейс, не нужно знать, заботиться или беспокоиться об этом, пока widget все еще имеет метод get_items_in_stock(). Как и мудрый, интерфейсу не нужно заботиться, если я подклассифицирую класс виджетов и добавлю метод get_square_root_of_items_in_stock(). Я также могу передать экземпляр нового класса.

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

Ответ 2

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

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

Затем мы добавляем слои к этой абстракции - возможно, два целых числа представляют Point, или мы и перечисления представляем месяцы года, дни недели и т.д.

С каждым уровнем абстракции мы двигаемся дальше от машины и (надеюсь) ближе к пониманию человеком данных. Это может привести к снижению производительности - не всегда возможно, что точки могут быть наиболее эффективно представлены двумя целыми числами. Это компенсируется более коротким временем разработки (и обслуживания) при использовании абстракций.

Ответ 3

Метод создания нового типа данных, который хорошо подходит для программируемого приложения, известен как абстракция данных.

Ответ 4

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

Ответ 5

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

class food{

 name;
 calories;
 weight;

 public eat(name);

 }

все продукты имеют название, количество калорий и вес. Это довольно абстрактно.

Затем вы можете сделать объекты, которые наследуют, что было бы немного менее абстрактным.

class pizza inherits food{

  toppings;

  say_toppings();

}

Пицца теперь имеет начинки, но она наследует имя, калории и вес от пищи.

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

Ответ 6

Абстракция скрывает скелет из человеческого тела. Кожа отлично справляется с этим. (Посмотрите, насколько я абстрактна, я здесь, Pun, я отвлекаюсь...)

Если у меня есть бутылка с водой, я могу выпить от нее, открыв крышку, скручивая ее, пока она не выскочит.

bool lid_open = false;
void open_water_bottle_by_twisting() { lid_open = true; }

Но бутылки с водой - это контейнеры. Контейнеры содержат жидкости до тех пор, пока они не станут открытыми, и они могут быть выпиты (если жидкость пригодна для питья).

class Container 
{ 
    bool lid_open = false;

protected: 
    Container() {}
    void open_by_twisting()
    {
        lid_open = true;
    }
public:
    virtual ~Container();
};

class WaterBottle : public Container
{
    WaterBottle() : Container() {}
public:
    ~WaterBottle();
};

Однако не все контейнеры открыты одинаково. В некоторых контейнерах, таких как бутылка с водой, есть крышки, которые можно скрутить. У других нет крышек, таких как бутылочки для упражнений, которые содержат соломинку соломы, которую можно наклонить для хранения или для питья.

class Container 
{ 
    bool lid_open;
    bool straw_open;

protected:
    void TurnLid() { lid_open = true; }
    void BendStraw() { straw_open = true; }
    Container() : lid_open(false), straw_open(false){}

public:
    virtual void open() = 0;
    virtual ~Container();
};

class WaterBottle : public Container
{

public: 
    WaterBottle() : Container() {}
    void open()
    {
        TurnLid();
    }
    ~WaterBottle();
};

class ExerciseBottle : public Container
{
public:
    ExerciseBottle() : Container() {}
    void open()
    {
        BendStraw();
    }
    ~ExerciseBottle();
};

Но клиент не знает, что такое ExerciseBottle реализация ExerciseBottle open(). Он вызывает BendStraw(), который затем устанавливает straw_open в true. Но ExerciseBottle просто вызывает одну функцию для выполнения всей этой работы. Клиенту не нужно выполнять несколько действий, которые используются при реализации open(). Случай аналогичен случаю WaterBottle. И это то, что абстракция: позволяет клиенту знать, что back-end сделает всю работу для него. Когда используется термин "разделение реализации из интерфейса", это означает, что это означает.

Ответ 7

Является ли сложная система, которая использует данные данных, которые легко взаимодействуют или встречаются с людьми, которые отличаются от того, как хранится компьютерная система, например, в двоичной системе счисления. Ответил Неема, Рохан и Упендо (программисты)

Ответ 8

Метод ограничения атрибутов данных в соответствии с данным сценарием для разработки программного обеспечения и устранения всех нерелевантных атрибутов. Это упрощает разработку программного обеспечения.

Ответ 9

Возьмем один реальный пример телевизора, который вы можете включить и выключить, изменить канал, отрегулировать громкость и добавить внешние компоненты, такие как динамики, видеомагнитофоны и проигрыватели DVD, но вы не знаете его внутренних деталей, вы не знаете, как он получает сигналы по воздуху или по кабелю, как он их переводит, и, наконец, отображает их на экране.

Ответ 10

Это относится к действию представления важной функции без включения фоновой детали или объяснения.

Ответ 11

Трудно найти пример повседневной жизни абстракции DATA. Однако любые типы данных в языке программирования, таблицах и представлении в СУБД, такие структуры данных, как LinkedList, List, Queue, Stack, являются абстракциями данных. Эти абстракции предоставляют вам способ доступа к данным определенным образом.

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

Ответ 12

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

Ответ 13

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

Ответ 14

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

Реальная аналогия абстракции может работать следующим образом: Вы (объект) организуете встречу со слепой датой и решаете, что сказать им, чтобы они могли узнать вас в ресторане, Вы решили включить информацию о том, где будете находиться, о высоте, цвету волос и цвете пиджака. Это все данные, которые помогут вашей процедуре (ваша встреча с вами) работать плавно. Вы должны включить всю эту информацию. С другой стороны, есть много информации о вас, которые не имеют отношения к этой ситуации: ваш номер социального страхования, ваши любимые футболисты не имеют никакого отношения к этой конкретной ситуации, потому что они не помогут вашей дате найти вы.

Ответ 15

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