Непрозрачный тип данных кратко

Лекция



Привет, Вы узнаете о том , что такое непрозрачный тип данных, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое непрозрачный тип данных, odt , настоятельно рекомендую прочитать все из категории Структуры данных.

В информатике , непрозрачный тип данных является типом данных , конкретной структура данных не определен в интерфейсе . Это обеспечивает скрытие информации , поскольку ее значениями можно манипулировать только путем вызова подпрограмм, которые имеют доступ к отсутствующей информации. Конкретное представление типа скрыто от его пользователей, и видимая реализация является неполной. Тип данных, представление которого является видимым, называется прозрачным . Непрозрачные типы данных часто используются для реализации абстрактных типов данных .

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

Непрозрачные типы данных часто применяются для реализации абстрактных типов данных .

Типы данных, чья структура данных просматривается, называются прозрачными типами данных .

Общеизвестными примерами непрозрачных типов данных является дескрипторы и ресурсы операционной системы , предоставляемые прикладной программе . Например, POSIX Threads определяет прикладной программный интерфейс , использующий непрозрачные типы данных для представления нитей выполнения и примитивов синхронизации как мьютексы и условные переменные .

Непрозрачный указатель - является частным случаем непрозрачного типа данных. Это указатель на запись или структуру данных приведенного типа. Например, стандартная библиотека, которая является частью спецификации языка программирования C , для ввода / вывода в файл использует указатель на FILE, конкретная реализация которого задана.

В различных языках программирования

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

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

В некоторых языках, таких как Java , единственным типом непрозрачного типа является непрозрачный указатель. Действительно, в Java (и некоторых других языках) записи всегда обрабатываются с помощью указателей. Об этом говорит сайт https://intellect.icu . В языке Java непрозрачными типами могут быть только непрозрачные указатели.

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

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

Непрозрачным указатель представляет собой частный случай из непрозрачного типа данных, типа данных , который объявлен быть указателем на рекордно или структуру данных некоторых неопределенного типа данных. Например, стандартная библиотека, которая является частью спецификации языка программирования C, предоставляет функции для ввода и вывода файлов, которые возвращают или принимают значения типа «указатель на », которые представляют файловые потоки (см. Ввод / вывод файла C ), но Конкретная реализация типа не указана. FILEFILE

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

Некоторые языки допускают частично непрозрачные типы, например, запись, которая имеет некоторые открытые поля, известные и доступные для всех клиентов, и некоторые скрытые поля, которые не отображаются в интерфейсе. Такие типы играют фундаментальную роль в объектно-ориентированном программировании .

Информация, которая отсутствует в интерфейсе, может быть объявлена ​​в его реализации или в другом интерфейсе «только для друзей». Этот второй параметр позволяет скрытой информации быть разделенной двумя или более модулями.

Применение

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

Речь идет о переносимом интерфейсе операционной системы (POSIX) , интерфейсе прикладной программы, который представляет собой интерфейс между прикладным программным обеспечением и операционной системой.

Определение в модульном программировании

Непрозрачные типы данных также используются в модульных языках программирования, таких как Modula-2 , дальнейшее развитие Pascal . Реализация или реализация происходит с помощью так называемых модулей . Все части, переведенные отдельно от основной программы, разделены на два файла: модуль определения и модуль реализации.

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

Напротив, существует тип данных, представление которого является видимым. Этот тип данных снова называется «прозрачным».

Используйте непрозрачные типы данных (пример)

Непрозрачный тип данных

Описание

В случае непрозрачного типа данных, описание структуры связанных непрозрачных объектов данных определено в другом месте и недоступно для пользователя типа данных. Он использует только имя непрозрачного типа данных TStackдля объявления непрозрачных объектов данных (1). Доступ теперь не достигается путем непосредственного изменения или чтения объектов с использованием знания их детальной структуры, а только с помощью операций доступа (2).

Использование прозрачных типов данных (пример)

Непрозрачный тип данных

Описание

Нормальный тип данных вводится объявлением типа (3), которое определяет имя типа, в этом примере TSpace, и которое определяет его структуру в последующем определении типа, здесь поле n-элемент любого типа данных. Эта структура считается раскрытой, поэтому нормальный тип данных также называют прозрачным типом данных. С помощью идентификатора типа, который представляет описание структуры, объект данных этого типа теперь может быть объявлен в объявлении объекта данных (4). Поскольку его детальная структура известна, можно сделать ссылку на манипулирование этим объектом данных (5).

Вау!! 😲 Ты еще не читал? Это зря!

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

Из статьи мы узнали кратко, но содержательно про непрозрачный тип данных
создано: 2020-05-17
обновлено: 2021-03-13
5



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Структуры данных

Термины: Структуры данных