Другие языки программирования и технологии
Абстракция и абстрактные типы данных.
Вот сколько читаю, но ни как не могу понять что это такое и с чего его едят. Может быть какие то темы упустил для понимания... но всё же.. . Можете нормальным человеческим языком объяснить что такое абстракция и абстрактные типы данных в программировании. А точнее в паскале. Определений из википедии и тому подобных я насмотрелся.
А что тебе непонятно в Википедии? Там простым человеческим языком описано.
Могу простой пример привести: треугольник можно задать двумя сторонами и углом между ними, тремя сторонами, стороной и двумя углами и т. д. Представь себе, что у тебя есть тип Triangle, в котором можно стандартными функциями выставлять длины сторон, считать площадь и т. д. ; но ты не знаешь, хранит он все стороны или только две и угол, как считает площадь - это все делают известные тебе функции, а ты абстрагируешься от реализации.
Еще более простой пример: ты знаешь, как работает функция length для строки? Это тебе мешает пользоваться строками?
Могу простой пример привести: треугольник можно задать двумя сторонами и углом между ними, тремя сторонами, стороной и двумя углами и т. д. Представь себе, что у тебя есть тип Triangle, в котором можно стандартными функциями выставлять длины сторон, считать площадь и т. д. ; но ты не знаешь, хранит он все стороны или только две и угол, как считает площадь - это все делают известные тебе функции, а ты абстрагируешься от реализации.
Еще более простой пример: ты знаешь, как работает функция length для строки? Это тебе мешает пользоваться строками?
в общем если есть несколько классов в одинаковыми функциями, определяют интерфейс и наследуют от него классы. если реализация функций одинаковая, то определяют абстрактный класс и там выписывают общие функции. а абстрактный он потому что его самого создавать не надо
Андрей Зорин
Это ООП, а не АТД
Есть встроенные типы данных, которые уже определены разработчиками языка. Есть пользовательские типы данных, которые определяет (составляет) сам пользователь. Пользовательские типы данных могут включать в своё описание как встроенные типы данных, так и другие пользовательские типы данных.
Как создаются пользовательские типы данных? Пользователь, решая некоторую задачу, делает её компьютерную модель. Данные этой модели он интерпретирует как некое множество, которое называется классом (структурой) . Для этого множества определяются, также, и функции, которые работают с данными этого множества. И эти функции, также, включается в описание класса (структуры) . А каким образом пользователь сопоставляет реальную задачу и записи программного кода. Что он для этого использует? Чем он пользуется? А пользуется он своими мыслями, знаниями и соответствующим уровнем абстракции. Поэтому и эти пользовательские типы данных и называют абстрактными типами данных.
Как создаются пользовательские типы данных? Пользователь, решая некоторую задачу, делает её компьютерную модель. Данные этой модели он интерпретирует как некое множество, которое называется классом (структурой) . Для этого множества определяются, также, и функции, которые работают с данными этого множества. И эти функции, также, включается в описание класса (структуры) . А каким образом пользователь сопоставляет реальную задачу и записи программного кода. Что он для этого использует? Чем он пользуется? А пользуется он своими мыслями, знаниями и соответствующим уровнем абстракции. Поэтому и эти пользовательские типы данных и называют абстрактными типами данных.
Похожие вопросы
- Тип данных в паскале
- Что имеется ввиду под 4 байтами у типа данных int?(С++)
- Есть ли в программировании основные (фундаментальные) типы данных, от которых берут начало другие типы?
- Перечислите основные типы данных
- C++. Типы данных. Создание типа данных.
- Что это за тип данных? (Delphi)
- Как проверить тип данных на си?
- Вопрос про типы данных
- Про типы данных.
- C# почему когда создаю тип данных byte - он его автоматически преобразовывает в тип int?