Что характеризует абстрактный тип данных - PullRequest
0 голосов
/ 13 января 2020

У меня был этот вопрос на моем OOP экзамене, и я должен был выбрать один или несколько ответов из следующих:

Что характеризует абстрактный тип данных?

  1. Различные операции (средства доступа и модификаторы к состоянию), которые он поддерживает;
  2. Тот факт, что состояние объекта является изменяемым;
  3. Тот факт, что у него есть хотя бы один метод, который изменяет состояние.

Полагаю, 1 и 2 - правильные ответы, но я не уверен. По этой причине я хотел бы узнать от кого-то, действительно ли они правы или нет.

1 Ответ

0 голосов
/ 13 января 2020

Единственно правильный ответ - первый.

Вы можете следовать процедуре исключения: 2 не обязательно должно быть правдой, поскольку существуют неизменные типы данных, как уже указывал Морис Перри. 3 не обязательно должно быть истинным по той же причине: неизменяемые типы не имеют методов изменения состояния.

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

Вы можете проверить this , this , это и это , если вы заинтересованы в дальнейшем чтении по этому вопросу.

...