Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_NEW.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
1.43 Mб
Скачать

34. Объектно-ориентированное программирование. Ввод-вывод данных.

Поток (stream) - это абстрактное представление последовательноro уcrpойства, для котoporo сохранение и считывание данных выполняется побайтно. Базовым устройством для потока может быть, например файл, принтер или сетевой сокет. Потоки: FileStream, MemoryStream, BufferedStream .Работа с объектом FileStream:

FileStream myFStream = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);

// Записываем байты в файл *.dat

for(int i = 0; i < 256; i++) { myFStream.WriteByte((byte)i); }

// Переставляем внутренний указатель на начало

myFStream.Position = 0;

// Считываем байты из файла *.dat

for(int i = 0; i < 256; i++) { Console.Write(myFStream.ReadByte()); }

myFStream.Close();

Когда необходимо считать или записать символьные данные (данные в формате string) можно так же использовать: Console.WriteLine(), Console.ReadLine() и другие. Форматирование: Console.WriteLine("{0,10:f2}{1,10:f2}{2,10:f2}", x, y, z);

Здесь после запятой указан формат: 10 - общее количество знаков, f (или F) - фиксированная запятая, 2 - количество знаков после запятой. Состояние потока может быть получено из свойства ThreadState, доступного в классе Thread. Ниже приведена общая форма этого свойства: public ThreadState ThreadState{ get; }. Состояние потока возвращается в виде значения, определенного в перечислении: ThreadState.Aborted, ThreadState.Background, ThreadState.Stopped, ThreadState.Suspended, ThreadState.Unstarted, ThreadState.AbortRequested, ThreadState.Running, ThreadState.StopRequested, ThreadState.SuspendRequested, ThreadState.WaitSleepJoin. Все эти значения не требуют особых пояснений, за исключением одного. Значение ThreadState . Wait Sleep Join обозначает состояние, в которое поток переходит во время ожидания в связи с вызовом метода Wait (), Sleep () или Join (). Необходимо обрабатывать исключения в потоках. Необработанные исключения в потоках, даже в фоновых потоках, как правило, приводит к прерыванию процесса. Существует три исключения из этого правила:

  • Исключение ThreadAbortException создается в потоке, потому что была вызвана перегрузка Abort.

  • Исключение AppDomainUnloadedException создается в потоке, так как выгружается домен приложения.

  • Среда CLR или процесс основного приложения прерывает выполнение потока.

Try - начало блока исключений; catch (поймать) - начало блока, "ловящего" исключение; throw (бросить) - ключевое слово, "создающее" ("возбуждающее") исключение.

35. Платформо-независимые языки программирования.

С-подобный язык, чисто ООП, апплеты, мощный механизм абстрактных классов

Класс есть ключевое понятие в объектно-ориентированном программировании, под которое и заточена Java. Класс описывает содержание и поведение некой совокупности данных и действий над этими данными. Объявление класса производится с помощью ключевого слова class. Пример: class < имя_класса > {// содержимое класса}. Классы могут наследовать методы и данные один другого. Опера́ция — конструкция в языках программирования, аналогичная по записи математическим операциям, то есть специальный способ записи некоторых действий. Наиболее часто применяются арифметические, логические и строковые операции. Типы операций:

  • унарные — один аргумент (отрицание, унарный минус)

  • бинарные — два аргумента (сложение, вычитание, умножение и т.д.)

  • тернарные — три аргумента ("условие ? выражение1 : выражение2").

Наследование реализуется с помощью ключевого слова extends (class <имя_класса> extends <имя_суперкласса>). Полиморфи́зм в языках программирования — возможность объектов с одинаковой спецификацией иметь различную реализацию. Interface описывает предполагаемое поведение класса, не упоминая конкретных действий. Создаётся интерфейс с помощью ключевого слова interface ( interface <имя_интерфейса>). Для того чтобы унаследовать (реализовать) классом интерфейс, используется ключевое слово implements (class <имя_класса> implements <имя_интерфейса>). А между собой интерфейсы унаследуются всё тем же словом extends. Java-апплет — прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Java машины (JVM). Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Модели делегирования событий: Эта концеп­ция весьма проста: источник генерирует событие и посылает его одному или нескольким блокам прослушивания’ (listeners) событий. В этой схеме, блок прослушивания просто ждет поступления события. Получив событие, блок прослушивания обрабатывает его и затем возвращает управление. Преиму­щество указанного способа состоит в том, что логика приложения, обраба­тывающего события, четко отделена от логики интерфейса пользователя, генерирующего эти события. ActionEvent – генерируется: при нажатии кнопки; двойном щелчке клавишей мыши по элементам списка; при выборе пункта меню; AdjustmentEvent – генерируется при изменении полосы прокрутки; ComponentEvent – генерируется, если компонент скрыт, перемещен, изменен в размере или становится видимым; FocusEvent – генерируется, если компонент получает или теряет фокус ввода; TextEvent – генерируется при изменении текстового поля; ItemEvent – генерируется при выборе элемента из списка. К механизму обработки исключений в Java имеют отношение 5 клю­чевых слов: — trycatchthrowthrows и finally. Схема работы этого механизма следующая. Вы пытаетесь (try) выполнить блок кода, и если при этом возникает ошибка, система возбуждает (throw) исключение, ко­торое в зависимости от его типа вы можете перехватить (catch) или пере­дать умалчиваемому (finally) обработчику. Ниже приведена общая форма блока обработки исключений.

try {

// блок кода } 

catch (ТипИсключения1 е) {

// обработчик исключений типа ТипИсключения1 } 

catch (ТипИсключения2 е) {

// обработчик исключений типа ТипИсключения2

 throw(e)   // повторное возбуждение исключения } 

finally { … }

Проектирование интерфейса средствами библиотек AWT и JFC Swing

Средство GUI Builder в среде IDE позволяет создавать профессиональные графические интерфейсы без наличия знаний о работе с диспетчерами компоновки. Проектирование форм можно выполнять путем простого размещения компонентов формы в требуемых позициях.

Создание проекта.

Создание контейнера JFrame

По завершении создания приложения можно заметить, что папка с исходными файлами в окне "Проекты" содержит пустой узел <default package>. Для продолжения процесса создания интерфейса необходимо создать контейнер Java, в который будут помещены другие требуемые элементы графического интерфейса. В этом действии будет выполнено создание контейнера с использованием компонента JFrame и размещение контейнера в новом пакете.

Добавление контейнера JFrame

  1. В окне 'Проекты' щелкните правой кнопкой мыши узел ContactEditor и выберите 'Создать' > 'Форма JFrame'.  Также форму JFrame можно найти, выбрав "Создать" > "Другое" > "Формы графического интерфейса Swing" > "Форма JFrame".

  2. Введите ContactEditorUI в поле имени класса.

  3. Введите my.numberaddition в поле пакета.

  4. Нажмите кнопку "Завершить".

Среда IDE создаст форму ContactEditorUI и класс ContactEditorUI в рамках приложения ContactEditorUI.javaи открывает форму ContactEditorUI в средстве GUI Builder. Обратите внимание, что пакет my.contacteditorсохраняется вместо пакета по умолчанию.

Теперь, по завершении настройки нового проекта для приложения, необходимо ознакомиться с интерфейсом GUI Builder. Уже можно приступить к разработке пользовательского интерфейса приложения ContactEditor.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]