Java -практика использования



         

Java -практика использования

Первая часть содержит три главы, в которых рассматриваются базовые понятия языка. По прочтении ее вы сможете свободно разбираться в понятиях объектно-ориентированного программирования и их реализации на языке Java, создавать свои объектно-ориентированные программы, рассчитанные на консольный ввод/вывод.
В главе I описываются типы исходных данных, операции с ними, выражения, массивы, операторы управления потоком информации, приводятся ^примеры записи часто встречающихся алгоритмов на Java. После знакомства с этой главой вы сможете писать программы на Java, реализующие любые вычислительные алгоритмы, встречающиеся в вашей практике. В главе 2 вводятся основные понятия объектно-ориентированного программирования: объект и метод, абстракция, инкапсуляция, наследование, полиморфизм, контракты методов и их поручения друг другу. Эта глава призвана привить вам "объектный" взгляд на реализацию сложных проектов, после ее прочтения вы научитесь описывать проект как совокупность взаимодействующих объектов. Здесь же предлагается реализация всех этих понятий на языке Java. Тут вы, наконец, поймете, что же такое эти объекты и как, они взаимодействуют друг с другом,;
К главе 3 определяются пакеты классов и интерфейсы, ограничения доступа к классам и методам, на примерах подробно разбираются правила их использования. Объясняется структура встроенной библиотеки классов Java API.
Во второй части рассматриваются пакеты основных классов, составляющих неотъемлемую часть Java, разбираются приемы работы с ними и приводится примеры практического использования основных классов. Здесь вы увидите, как идеи объектно-ориентированного программирования реализуются на практике в сложных производственных библиотеках классов. После изучения этой части вы сможете реализовывать наиболее часто встречающиеся ситуации объектно-ориентированного программирования с помощью стандартных классов.
Глава 4 прослеживает иерархию стандартных классов и интерфейсов Java, на этом примере показано, как в профессиональных системах программирования реализуются концепции абстракции, инкапсуляции и наследования.
В главе 5 подробно излагаются приемы работы со строками символов, которые, как и все в Java, являются объектами, приводятся примеры синтаксического анализа текстов.
В главе 6 показано, как в языке Java реализованы контейнеры, позволяющие работать с совокупностями объектов и создавать сложные структуры данных.
Глава 7 описывает различные классы-утилиты, полезные во многих ситуациях при работе с датами, случайными числами, словарями и другими необходимыми элементами программ.
В третьей части объясняется создание графического интерфейса пользователя (ГИП) с помощью стандартной библиотеки классов AWT (Abstract Window Toolkit) и даны многочисленные примеры построения интерфейса. Подробно разбирается принятый в Java метод обработки событий, основанный на идее делегирования. Здесь же появляются апплеты как программы Java, работающие в окне браузера. Подробно обсуждается система безопасности выполнения апплетов. После прочтения третьей части вы сможете создавать полноценные приложения под графические платформы MS Windows, X Window System и др., а также программировать браузеры.
Глава 8 описывает иерархию классов библиотеки AWT, которую необходимо четко себе представлять для создания удобного интерфейса. Здесь же рассматривается библиотека графических классов Swing, постепенно становящаяся стандартной наряду с AWT.
В главе 9 демонстрируются приемы рисования с помощью графических примитивов, способы задания цвета и использование шрифтов, а также решается вопрос русификации приложений Java.
В главе 10 обсуждается понятие графической составляющей, рассматриваются готовые компоненты AWT и их применение, а также создание собственных компонентов.
В главе 11 показано, какие способы размещения компонентов в графическом контейнере имеются в AWT, и как их применять в разных ситуациях.
В главе 12 вводятся способы реагирования компонентов на сигналы от клавиатуры и мыши, а именно, модель делегирования, принятая в Java.
В главе 13 описывается создание системы меню — необходимой составляющей графического интерфейса.
В главе 14, наконец-то, появляются апплеты — Java-программы, предназначенные для выполнения в окне браузера, и обсуждаются их особенности.
В главе 15 рассматривается работа с изображениями и звуком средствами AWT.
В четвертой части изучаются конструкции языка Java, не связанные общей темой. Некоторые из них необходимы для создания надежных программ, учитывающих все нештатные ситуации, другие позволяют реализовывать сложное взаимодействие объектов. Здесь же рассматривается передача потоков данных от одной программы Java к другой. Внимательное изучение четвертой части позволит вам дополнить свои разработки гибкими средствами управления выполнением приложения, создавать сложные клиент-серверные системы.
Глава 16 описывает средства обработки исключительных ситуаций, возникающих во время выполнения готовой программы, встроенные в Java.
Глава 17 рассказывает об уникальном свойстве языка Java — способности создавать подпроцессы (threads) и управлять их взаимодействием прямо из программы.
В главе 18 обсуждается концепция потока данных и ее реализация в Java для организации ввода/вывода на внешние устройства.

Введение
Такое быстрое и широкое распространение технологии Java не в последнюю очередь связано с тем, что она использует новый, специально созданный язык программирования, который так и называется — язык Java. Этот язык создан на базе языков Smalltalk, Pascal, C++ и др., вобрав их лучшие, по мнению создателей, черты и отбросив худшие.

Что такое Java
Java в Internet
Литература по Java
Структура книги
Выполнение Javaпрограммы
Что такое JRE
Как установить JDK
Как использовать JDK
Интегрированные среды Java
Особая позиция Microsoft

Встроенные типы данных, операции над ними
По давней традиции, восходящей к языку С, учебники по языкам программирования начинаются с программы "Hello, World!". He будем нарушать эту традицию. В листинге 1.1 эта программа в самом простом виде, записанная на языке Java

Первая программа на языке Java;
Окно Command Prompt
Логический тип
Логические операции
Целые типы
Целые типы - 2
Операции над целыми типами
Арифметические операции
Приведение типов
Неверное определение переменной

Объектно-ориентированное программирование в Java
Первые, даже самые простые программы, написанные в машинных кодах, составляли сотни строк совершенно непонятного текста. Для упрощения и ускорения программирования придумали языки высокого уровня: FORTRAN, Algol и сотни других, возложив рутинные операции по созданию машинного кода на компилятор. Те же программы, переписанные на языках высокого уровня, стали гораздо понятнее и короче.

Окончательные члены и классы
Класс Object
Конструкторы класса
Операция new
Статические члены класса
Статическая переменная
Класс Complex
Длинный но просмотрите

Пакеты и интерфейсы
Чтобы создать пакет надо просто в первой строке Java-файла с исходным кодом записать строку package имя; , например: package mypack; Тем самым создается пакет с указанным именем mypack и все классы, записанные в этом файле, попадут в пакет mypack . Повторяя эту строку в начале каждого исходного файла, включаем в пакет новые классы. Имя подпакета уточняется именем пакета.

Права доступа к членам класса
Размещение наших классов по пакетам
Показывает содержимое этого файла
Файл Base java с описанием пакета p1
Права доступа к полям и методам класса
Интерфейсы
Разные варианты наследования
Показывает как можно
Использование интерфейса
Система управления светофором

Классы-оболочки
Помимо метода сравнения объектов equals о, переопределенного из класса object , все описанные в этой главе классы, кроме Boolean и class , имеют метод compareTo () , сравнивающий числовое значение, содержащееся в данном объекте, с числовым значением объекта — аргумента метода compareTo() . В результате работы метода получается целое значение

Числовые классы
Методы числовых классов ;
Методы числовых классов
Методы класса Character в CharacterTest
Класс Biglnteger
Методы класса Biglnteger в BiglntegerTest
Методы класса Biglnteger
Класс Big Decimal
Показывает примеры
Методы класса BigDecimal в BigDecimalTest

Работа со строками
Первое вхождение подстроки sub в данную строку this отыскивает метод indexof (String sub). Он возвращает индекс первого символа первого вхождения подстроки sub в строку или -1, если подстрока sub не входит в строку this . Например, " Раскраска ".indexof ("рас") даст в результате 4.

Как найти подстроку
Как изменить регистр букв
Как заменить отдельный символ
Как убрать пробелы в начале и конце строки
Как преобразовать данные другого типа в строку
Класс StringBuffer
Конструкторы
Как добавить подстроку
Как вставить подстроку
Как удалить подстроку

Классы-коллекции
В классе vector из пакета java.uti i хранятся элементы типа object , а значит, любого типа. Количество элементов может быть любым и наперед не определяться. Элементы получают индексы 0, 1, 2, .... К каждому элементу вектора можно обратиться по индексу, как и к элементу массива.

Класс Stack
Показывает как можно
Проверка парности скобок
Класс
Вывод системных свойств
Системные свойства
Иерархия классов и интерфейсовколлекций
Интерфейс Collection
Как создать вектор
Интерфейс

Классы-утилиты
В классе Arrays из пакета java.utii собрано множество методов для работы с массивами. Их можно разделить на четыре группы. Восемнадцать статических методов сортируют массивы с разными типами числовых элементов в порядке возрастания чисел или просто объекты в их естественном порядке. Восемь из них имеют простой вид static void sort(type[] a)

Применение методов класса Arrays
Взаимодействие с системой
Локальные установки
Работа с датами и времене
Часовой пояс и летнее время
Класс Calendar
Подкласс GregorianCalendar
Представление даты и времени
Получение случайных чисел
Копирование массивов

Принципы построения графического интерфейса
Основное понятие графического интерфейса пользователя (ГИП) — компонент (component) графической системы. В русском языке это слово подразумевает просто составную часть, элемент чего-нибудь, но в графическом интерфейсе это понятие гораздо конкретнее. Оно означает отдельный, полностью определенный элемент, который можно использовать в графическом интерфейсе независимо от других элементов

Компонент и контейнер
Слишком простое окно приложения
Простое окно приложения
Окно программыприветствия
Графическая программа с приветствием
Заключение

Графические примитивы
При создании контекста в нем задается текущий цвет для рисования, обычно черный, и цвет фона области рисования — белый или серый. Изменить текущий цвет можно методом setcoior (Color newCoior), аргумент newcoior которого — объект класса Color. Узнать текущий цвет можно методом getcolor (), возвращающим объект класса color

Преобразование координат
Класс AffineTransform
Преобразование пространства пользователя
Преобразование координат
Рисование фигур средствами Java2D
Класс BasicStroke
Определение перьев
Перья с различными характеристиками
Использованы классы
Класс GeneralPath

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

События
Компонент Checkbox
События
Класс CheckboxGroup
Как создать группу радиокнопок
Размещение компонентов
Простые компоненты
Компонент Choice
События
Компонент List

Размещение компонентов
Наиболее просто поступает менеджер размещения FlowLayout. Он укладывает в контейнер один компонент за другим слева направо как кирпичи, переходя от верхних рядов к нижним. При изменении размера контейнера "кирпичи" перестраиваются, как показано на 11.1. Компоненты поступают в том порядке, в каком они заданы в методах add ().

Содержит вид этих компонентов
Менеджер размещения FlowLayout
Размещение компонентов с помощью FlowLayout
Менеджер BorderLayout
Менеджер размещения BorderLayout
Области размещения BorderLayout
Сложная компоновка
Менеджер GridLayout
Менеджер GridLayout
Размещение кнопок менеджером GridLayout

Обработка событий
События типа WindowEvent возникают только в окнах: Frame, Dialog, FileDialog, Window. События типа TextEvent генерируются только в контейнерах Textcomponent, TextArea, TextField. События типа ActionEvent проявляются только в контейнерах Button, List, TextField. События типа ItemEvent возникают только в контейнерах Checkbox, Choice, List. Наконец, события типа AdjustmentEvent возникают только в контейнере Scrollbar.

Обработка события ActionEvent
Обработка события ActionEvent
Самообработка события ActionEvent
Обработка вложенным классом
Событие ActionEvent
Событие ItemEvent
Событие AdjustmentEvent
Программа создания цвета
Несколько слушателей одного источника
Диспетчеризация событий

Создание меню
Часто пункты меню объединяются в группы. Одна группа от другой отделяется горизонтальной чертой. На 13.1 черта проведена между командами Открыть и Отправить. Эта черта создается методом addseparator () класса Menu или определяется как пункт меню с надписью специального вида — дефисом: mFile.addfnew Menuitem("-"));

Система меню
Программа рисования с меню
Программа рисования с меню
Всплывающее меню
Программа рисования с всплывающим меню
Программа рисования с всплывающим меню

Апплеты
Все указания браузеру даются пометками, тегами (tags), на языке HTML (HyperText Markup Language). В частности, указание на запуск апплета дается в теге applet. В нем обязательно задается имя файла с классом апплета параметром code, ширина width и высота height панели апплета в пикселах. Полностью текст HTML для нашего апплета приведен в листинге

Апплет HelloWorld
Файл HTML для загрузки апплета HelloWorid
Апплет HelloWorld в окне Internet Explorer
Апплет HelloWorld в окне программы appietviewer
Бегущая строка в строке состояния браузера
Файл RunningString html
Апплет создающий окно
Файл ShowWindow html
Апплет создающий окно
Передача параметров

Изображения и звук
В библиотеке AWT применяются две модели обработки изображения. Одна модель реализует давно известную в программировании общую модель "поставщик-потребитель" (Producer-Consumer). Согласно этой модели один объект, "поставщик", генерирует сам или преобразует полученную из другого места продукцию, в данном случае, набор пикселов, и передает другим объектам. Эти объекты, "потребители", принимают продукцию и тоже преобразуют ее при необходимости.

Изображение построенное по точкам
Демонстрирует вывод этой программы
Изображение созданное по точкам
Модель "поставщик потребитель"
Изменение составляющих цвета
Изменение составляющих цвета
Создание различных эффектов
Создание различных эффектов
Анимация
Простая анимация

Обработка исключительных ситуаций
После первого запуска, при обычном ходе программы, выводятся все сообщения. После второго запуска, приводящего к делению на нуль, управление сразу же передается В соответствующий блок catch(ArithmeticException ае) {}, потом выполняется то, что написано в блоке finally{}.

Сообщения обработки исключений
Выбрасывание исключения из метода
Часть заголовка метода throws
Обработка исключения в методе
Обработка исключения в методе
Оператор throw
Обработка нескольких типов исключений
Перехват нескольких типов исключений
Иерархия классовисключений
Порядок обработки исключений

Подпроцессы
Имя подпроцесса name не имеет никакого значения, оно не используется, виртуальной машиной Java и применяется только для различения подпроцессов в программе. После создания подпроцесса его надо запустить методом start (). Виртуальная машина Java начнет выполнять метод run () этого объекта-подпроцесса. Подпроцесс завершит работу после выполнения метода run (). Для уничтожения объекта-подпроцесса вслед за этим он должен присвоить значение null.

Два подпроцесса запущенных
Два подпроцесса работают без задержки
Подпроцессы работают с задержкой
Класс расширяет Thread
Реализация интерфейса Runnabie
Прекращение работы подпроцессов
Синхронизация подпроцессов
Синхронизация метода
Синхронизация метода
Согласование работы нескольких подпроцессов

Потоки ввода/вывода
Классы, управляющие потоком, получают в своих конструкторах уже имеющийся поток и создают новый, преобразованный поток. Можно представлять их себе как "переходное кольцо", после которого идет труба другого диаметра. Четыре класса созданы специально для преобразования потоков: FilterReader FilterlnputStream. FilterWriter FilterOutputStream

Классы байтовых потоков
Консольный ввод/вывод
Консольный ввод/вывод
Печать в Java
Печать средствами AWT
Печать средствами Java 2D
Простая печать методами Java 2D
Печать файла
Печать текстового файла
Печать страниц с разными параметрами

Интернет через Ethernet
Разработка приложений для Internet
Настройка Kerio WinRoute Firewall
Intranet Ware для Малого Бизнеса
Непрерывность бизнеса в нештатных ситуациях
Автоматизация работы с текстом
Lotus. Администрирование в вопросах и ответах
TCP-IP протоколы взаимодействия
TCP-IP крупным планом
Математическое моделирование течений вязкой жидкости вблизи твердых поверхностей
Система автоматизации библиотек ИРБИС
Сетевое железо
Локальная сеть для офиса
Компьютер (железо) - статьи
Курс лекций по вычислительной технике. Компьютерная техника
Исаков Дмитрий - Мурзик
Информатика и технология программирования
IT консалтинг - статьи
Корпоративный сайт. Эффективный инструмент бизнеса
Безопасность систем с открытым кодом