К сожалению, не смог найти на просторах глобальной сети подходящего для меня объяснения этого понятия. Когда заходит речь об абстрактных типах данных (АТД), то многие путают их с абстрактными классами (речь идёт о программистах из сообщества языка программирования Java), что совершенно не одно и то же. Для меня крайне важно понимать такие базовые понятия, как АТД, так как они являются фундаментальными и из них вытекают такие ключевые концепции ООП, как класс. Ведь если начать разбираться, то любой класс в Java является абстрактным типом данных, поставляемым с полной или частичной реализацией.
Из того, что мне удалось понять, под АТД подразумевается некоторое абстрактное множество данных и допустимых операций на них. Но это чересчур размытая формулировка, которая не даёт полного представления о данном понятии. Если следовать ей, то можно приравнять АТД к интерфейсам (хоть интерфейс и является в общем случае АТД, но это, отнюдь, не взаимозаменяемые понятия).
В общем, если можно, то объясните что же это такое на каких-нибудь относительно простеньких примерах. Буду всем крайне благодарен!
Абстрактный тип данных это скорее математическое и где-то даже философское понятие.
Есть такая историческая байка
Однажды ученики древнегреческого философа Сократа завели диспут на тему что такое человек, Сократ выслушав все мнения учеников высказал свою знаменитую сентенцию:
Человек - это птица на двух ногах без перьев
Один из учеников, не будь дураком, желая посрамить философа, тут же притащил ощипанную курицу, Сократ презрительно осмотрев курицу выдал:
забыл добавить, с плоскими ногтями
К чему это я. К тому что в данном случае философ был прав, поскольку он давал определение понятию через его свойства/операции. АТД и есть в данном случае понятие определяемое через его операции - это некая модель.
Например, что такое птицы - птицы это некие существа, которые могут летать. В смысле программирования, если множество выполняет операцию летать
- значит это птица, ну или в смысле Java:
class Птица implements Летающее {
}
С точки зрения программирования абстрактный класс является реализацией АТД (одной из реализаций).
Например
АТД - стек. Стек это модель данных, в котором элементы, организованы по принципу LIFO, то есть данные можно или вытащить верхний или протолкнуть следующий.
В программировании Stack
абстрактный класс с двумя методами push()/pop()
Смотрел туториал по разработке приложения на Андроид и в теме ArrayAdapter, ListView такой код
У меня есть несколько кнопок находящихся на фрагменте и один WebView находящийся на активитиФункция этих кнопок в моём представлении в том чтобы...
Например "Sweet" -> "sweet" или "FeDex" -> "