Лекция: Разработка приложений с графическим интерфейсом.

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

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

В программном коде для облегчения вызовов методов и свойств используют указатель this. Он не требует описания, но всегда соответствует контексту того класса объектов, для которого пишется программный код.

Тема №5 «Коллекция объектов»

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

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

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

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

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

В библиотеке .Net классы коллекций доступны в пространстве имен system::collection.

Классы с буквы I – интерфейс классы, абстрактные, без реализации.

Класс ArrayList позволяет создавать коллекции объектов последовательного характера. Здесь имитируется отношение характерное для списковой структуры.

Среди свойств ArrayList имеются свойства связанные с отображением и управлением длиной коллекции.

Свойство count возвращает количество элементов коллекции, и используется только для чтения.

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

Свойство Item позволяет обратить к конкретному элементу коллекции.

Все коллекции содержат методы добавления элементов.

Метод Add – позволяет добавить новый элемент в ArrayList, и это добавление осуществляется в конец коллекции.

В классе ArrayList имеется метод BinarySearch – дихотомического поиска (половинного деления), следует обратить внимание отсортирован ли ArrayList и как выполняется операция сравнения с эталоном поиска.

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

Метод IndexOf используется для нахождения заданного элемента (эталона) в коллекции. Метод возвращает индекс найденного элемента.

Метод LastIndexOf делает тоже, что и IndexOf, но с конца коллекции.

Метод Remove для удаления в коллекции. Часто эти методы полиморфны, что позволяет удалять по индексу или по значению.

Метод Sort позволяет сортировать элементы коллекции. Чтобы это сделать должна быть определена операция сравнения.

Класс BirArray дает возможность оперировать битами. В классе BirArray присутствует методы для выполнения логических операций над байтами.

Тема №6 «Класс HashTable»

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

Свойство Keys это элемент коллекции, отображающий все ключи, имеющиеся в данной коллекции.

Свойство Values аналогично является набором значений элементов хеш-таблицы.

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

Метод ContainsValue определяет, содержится ли заданное значение, среди множества значений коллекции.

Класс Queue (Очередь)

Метод Enqueue добавляет элемент в очередь. Предполагается, что элемент размещается в конце очереди и постепенно продвигается к началу, по мере того, как другие элементы из очереди исключаются.

Метод Dequeue извлекает элемент из очереди. Извлекается всегда первый элемент, при этом все остальные сдвигаются.

Метод Peek показывает, какой элемент является в очереди первым, возвращает его значения без изменения порядка в очереди.

В коллекциях бывают методы для преобразования в другие типы. Например, в коллекции Queue имеется метод ToArray и ToString преобразующие очередь соответственно в массив или строку.

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

еще рефераты
Еще работы по информатике