Другие языки программирования и технологии

Абстракция и абстрактные типы данных.

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