ebook img

Java PDF

758 Pages·44.11 MB·\758
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Java

Èëüäàð Õàáèáóëëèí Ñàíêò-Ïåòåðáóðã «ÁÕÂ-Ïåòåðáóðã» 2008 УДК 681.3.06 ББК 32.973.26-018.2 Х12 Хабибуллин И. Ш. Х12 Самоучитель Java. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2008. — 768 с.: ил. ISBN 978-5-9775-0191-0 Самоучитель написан на основе материала лекций, читаемых автором для сту- дентов первого и второго курсов. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного язы- ка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Третье издание содер- жит полное описание нововведений Java SE 6. Дано подробное изложение сервле- тов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных про- грамм иллюстрируют приведенные приемы программирования. Подробные схемы и описания классов и методов Core Java API позволяют применять книгу и как на- стольный справочник по технологии Java. Для широкого круга программистов УДК 681.3.06 ББК 32.973.26-018.2 Группа подготовки издания: Главный редактор Екатерина Кондукова Зам. главного редактора Игорь Шишигин Зав. редакцией Григорий Добин Редактор Владимир Красовский Компьютерная верстка Натальи Смирновой Корректор Виктория Пиотровская Дизайн серии Инны Тачиной Оформление обложки Елены Беляевой Зав. производством Николай Тверских Ëèöåíçèÿ ÈÄ ¹ 02429 îò 24.07.00. Ïîäïèñàíî â ïå÷àòü 28.03.08. Ôîðìàò 70×1001/ . Ïå÷àòü îôñåòíàÿ. Óñë. ïå÷. ë. 61,92. Òèð16àæ 3000 ýêç. Çàêàç ¹ "ÁÕÂ-Ïåòåðáóðã", 194354, Ñàíêò-Ïåòåðáóðã, óë. Åñåíèíà, 5Á. Ñàíèòàðíî-ýïèäåìèîëîãè÷åñêîå çàêëþ÷åíèå íà ïðîäóêöèþ ¹ 77.99.60.953.Ä.002108.02.07 îò 28.02.2007 ã. âûäàíî Ôåäåðàëüíîé ñëóæáîé ïî íàäçîðó â ñôåðå çàùèòû ïðàâ ïîòðåáèòåëåé è áëàãîïîëó÷èÿ ÷åëîâåêà. Îòïå÷àòàíî ñ ãîòîâûõ äèàïîçèòèâîâ â ÃÓÏ "Òèïîãðàôèÿ "Íàóêà" 199034, Ñàíêò-Ïåòåðáóðã, 9 ëèíèÿ, 12 ISBN 978-5-9775-0191-0 © Хабибуллин И. Ш., 2008 © Оформление, издательство "БХВ-Петербург", 2008 Оглавление В ............................................................................................................1 ВЕДЕНИЕ Что такое Java?.....................................................................................................................2 Структура книги...................................................................................................................3 Выполнение Java-программы..............................................................................................5 Что такое JDK?.....................................................................................................................7 Что такое JRE?......................................................................................................................9 Как установить JDK?...........................................................................................................9 Как использовать JDK?.....................................................................................................10 Интегрированные среды Java............................................................................................11 Особая позиция Microsoft..................................................................................................12 Java в Интернете.................................................................................................................12 Литература по Java.............................................................................................................13 Благодарности....................................................................................................................14 ЧАСТЬ I. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКА JAVA.................................15 Г 1. В , ........................17 ЛАВА СТРОЕННЫЕ ТИПЫ ДАННЫХ ОПЕРАЦИИ НАД НИМИ Первая программа на Java.................................................................................................17 Комментарии......................................................................................................................20 Аннотации...........................................................................................................................22 Константы...........................................................................................................................22 Целые...............................................................................................................................22 Действительные..............................................................................................................23 Символы..........................................................................................................................23 Строки.............................................................................................................................24 Имена...................................................................................................................................25 Примитивные типы данных и операции..........................................................................26 Логический тип...............................................................................................................27 Логические операции.....................................................................................................27 Упражнения....................................................................................................................28 Целые типы.....................................................................................................................28 Операции над целыми типами......................................................................................29 Арифметические операции........................................................................................29 Приведение типов.......................................................................................................30 IV Оглавление Операции сравнения...................................................................................................32 Побитовые операции..................................................................................................32 Сдвиги..........................................................................................................................33 Упражнения....................................................................................................................34 Вещественные типы.......................................................................................................34 Операции присваивания................................................................................................35 Упражнения....................................................................................................................36 Условная операция.........................................................................................................36 Упражнения....................................................................................................................36 Выражения..........................................................................................................................36 Приоритет операций......................................................................................................37 Операторы...........................................................................................................................38 Блок..................................................................................................................................39 Операторы присваивания..............................................................................................39 Условный оператор........................................................................................................39 Упражнения....................................................................................................................41 Операторы цикла............................................................................................................42 Оператор continue и метки.............................................................................................44 Оператор break...............................................................................................................45 Упражнения....................................................................................................................45 Оператор варианта.........................................................................................................46 Массивы..............................................................................................................................47 Многомерные массивы..................................................................................................49 Заключение.........................................................................................................................51 Вопросы для самопроверки...............................................................................................51 Г 2. О - J .........52 ЛАВА БЪЕКТНО ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В AVA Парадигмы программирования.........................................................................................52 Принципы объектно-ориентированного программирования........................................55 Абстракция......................................................................................................................55 Иерархия.........................................................................................................................58 Ответственность.............................................................................................................59 Модульность...................................................................................................................60 Принцип KISS.................................................................................................................62 Упражнения....................................................................................................................63 Как описать класс и подкласс?.........................................................................................63 Передача аргументов в метод.......................................................................................64 Перегрузка методов........................................................................................................66 Переопределение методов.............................................................................................67 Реализация полиморфизма в Java.................................................................................67 Упражнения....................................................................................................................69 Абстрактные методы и классы.........................................................................................69 Окончательные члены и классы.......................................................................................70 Класс Object........................................................................................................................70 Конструкторы класса.........................................................................................................71 Оглавление V Операция new......................................................................................................................72 Упражнение....................................................................................................................73 Статические члены класса.................................................................................................73 Класс Complex....................................................................................................................75 Метод main().......................................................................................................................78 Методы с переменным числом аргументов.....................................................................79 Где видны переменные......................................................................................................80 Вложенные классы.............................................................................................................81 Отношения "быть частью" и "являться"..........................................................................86 Заключение.........................................................................................................................86 Вопросы для самопроверки...............................................................................................87 ГЛАВА 3. ПАКЕТЫ, ИНТЕРФЕЙСЫ И ПЕРЕЧИСЛЕНИЯ........................................88 Пакет и подпакет................................................................................................................89 Права доступа к членам класса.........................................................................................90 Размещение пакетов по файлам........................................................................................92 Импорт классов и пакетов.................................................................................................94 Java-файлы..........................................................................................................................95 Интерфейсы........................................................................................................................96 Перечисления...................................................................................................................100 Объявление аннотаций....................................................................................................103 Design patterns...................................................................................................................104 Схема проектирования MVC......................................................................................105 Шаблон Singleton..........................................................................................................106 Заключение.......................................................................................................................107 Вопросы для самопроверки.............................................................................................107 ЧАСТЬ II. ИСПОЛЬЗОВАНИЕ КЛАССОВ ИЗ JAVA DEVELOPMENT KIT....................................................................109 ГЛАВА 4. КЛАССЫ-ОБОЛОЧКИ И GENERICS.....................................................111 Числовые классы..............................................................................................................112 Автоматическая упаковка и распаковка типов.............................................................114 Настраиваемые типы (generics).......................................................................................115 Шаблон типа (wildcard type)........................................................................................117 Настраиваемые методы...................................................................................................119 Класс Boolean...................................................................................................................119 Класс Character................................................................................................................120 Класс BigInteger................................................................................................................123 Класс BigDecimal..............................................................................................................125 Класс Class........................................................................................................................129 Вопросы для самопроверки.............................................................................................131 VI Оглавление Г 5. Р .....................................................................132 ЛАВА АБОТА СО СТРОКАМИ Класс String.......................................................................................................................133 Как создать строку.......................................................................................................133 Упражнение..................................................................................................................138 Сцепление строк...........................................................................................................138 Манипуляции строками...................................................................................................138 Как узнать длину строки..............................................................................................139 Как выбрать символы из строки.................................................................................139 Как выбрать подстроку................................................................................................140 Как разбить строку на подстроки...............................................................................140 Как сравнить строки.....................................................................................................141 Как найти символ в строке..........................................................................................142 Как найти подстроку....................................................................................................143 Как изменить регистр букв..........................................................................................143 Как заменить отдельный символ................................................................................144 Как заменить подстроку..............................................................................................144 Как убрать пробелы в начале и конце строки...........................................................144 Как преобразовать в строку данные другого типа....................................................144 Упражнения..................................................................................................................145 Класс StringBuilder...........................................................................................................145 Конструкторы...............................................................................................................145 Как добавить подстроку..............................................................................................146 Как вставить подстроку...............................................................................................146 Как удалить подстроку................................................................................................147 Как удалить символ......................................................................................................147 Как заменить подстроку..............................................................................................147 Как перевернуть строку...............................................................................................148 Синтаксический разбор строки.......................................................................................148 Класс StringTokenizer...................................................................................................148 Заключение.......................................................................................................................149 Вопросы для самопроверки.............................................................................................149 Г 6. К - ......................................................................150 ЛАВА ЛАССЫ КОЛЛЕКЦИИ Класс Vector......................................................................................................................150 Как создать вектор.......................................................................................................151 Как добавить элемент в вектор...................................................................................151 Как заменить элемент..................................................................................................152 Как узнать размер вектора...........................................................................................152 Как обратиться к элементу вектора............................................................................152 Как узнать, есть ли элемент в векторе........................................................................152 Как узнать индекс элемента........................................................................................152 Как удалить элементы..................................................................................................153 Класс Stack........................................................................................................................154 Оглавление VII Класс Hashtable................................................................................................................155 Как создать таблицу Hashtable....................................................................................155 Как заполнить таблицу Hashtable...............................................................................156 Как получить значение по ключу...............................................................................156 Как узнать наличие ключа или значения...................................................................156 Как получить все элементы таблицы Hashtable........................................................156 Как удалить элементы..................................................................................................157 Класс Properties............................................................................................................158 Интерфейс Collection.......................................................................................................160 Интерфейс List..................................................................................................................161 Интерфейс Set...................................................................................................................162 Интерфейс SortedSet.....................................................................................................162 Интерфейс NavigableSet...............................................................................................162 Интерфейс Queue.............................................................................................................163 Интерфейс BlockingQueue...........................................................................................164 Интерфейс Deque.............................................................................................................164 Интерфейс BlockingDeque...........................................................................................165 Интерфейс Map.................................................................................................................165 Вложенный интерфейс Map.Entry..............................................................................166 Интерфейс SortedMap..................................................................................................166 Интерфейс NavigableMap............................................................................................167 Абстрактные классы-коллекции.....................................................................................168 Интерфейс Iterator............................................................................................................168 Интерфейс ListIterator..................................................................................................170 Классы, создающие списки.............................................................................................171 Двунаправленный список............................................................................................171 Дек.................................................................................................................................172 Упражнение..................................................................................................................172 Классы, создающие отображения...................................................................................172 Связанные отображения..............................................................................................172 Упорядоченные отображения.....................................................................................173 Сравнение элементов коллекций....................................................................................173 Упражнение..................................................................................................................174 Классы, создающие множества......................................................................................174 Связанные множества..................................................................................................175 Упорядоченные множества.........................................................................................175 Действия с коллекциями.................................................................................................176 Методы класса Collections...........................................................................................176 Упражнение..................................................................................................................177 Заключение.......................................................................................................................177 Вопросы для самопроверки.............................................................................................177 Г 7. К - ..........................................................................178 ЛАВА ЛАССЫ УТИЛИТЫ Работа с массивами..........................................................................................................178 Сортировка массива.....................................................................................................178 VIII Оглавление Бинарный поиск в массиве..........................................................................................178 Заполнение массива.....................................................................................................179 Копирование массива..................................................................................................179 Сравнение массивов.....................................................................................................180 Представление массива строкой.................................................................................180 Получение хеш-кода массива......................................................................................181 Локальные установки.......................................................................................................181 Работа с датами и временем............................................................................................182 Часовой пояс и летнее время.......................................................................................183 Класс Calendar..............................................................................................................183 Подкласс GregorianCalendar.......................................................................................184 Представление даты и времени..................................................................................185 Получение случайных чисел...........................................................................................186 Копирование массивов....................................................................................................186 Взаимодействие с системой............................................................................................187 ЧАСТЬ III. СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И АППЛЕТОВ ................................................................189 ГЛАВА 8. ПРИНЦИПЫ ПОСТРОЕНИЯ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА................191 Компонент и контейнер...................................................................................................193 Иерархия классов AWT...................................................................................................196 Окно библиотеки Swing...................................................................................................197 Использование системных приложений........................................................................198 System Tray....................................................................................................................199 Splash Screen.................................................................................................................199 Заключение.......................................................................................................................200 Вопросы для самопроверки.............................................................................................200 ГЛАВА 9. ГРАФИЧЕСКИЕ ПРИМИТИВЫ............................................................201 Методы класса Graphics..................................................................................................201 Как задать цвет.............................................................................................................201 Упражнение..................................................................................................................203 Как нарисовать чертеж................................................................................................203 Класс Polygon................................................................................................................204 Упражнение..................................................................................................................205 Прочие методы класса Graphics.................................................................................205 Как вывести текст.........................................................................................................205 Как установить шрифт.................................................................................................206 Как задать шрифт.........................................................................................................206 Класс FontMetrics.........................................................................................................210 Упражнение..................................................................................................................213 Возможности Java 2D......................................................................................................213 Оглавление IX Преобразование координат.............................................................................................214 Класс AffineTransform..................................................................................................215 Упражнение..................................................................................................................218 Рисование фигур средствами Java 2D............................................................................218 Класс BasicStroke..........................................................................................................218 Класс GeneralPath........................................................................................................221 Классы GradientPaint и TexturePaint..........................................................................222 Классы LinearGradientPaint и RadialGradientPaint...................................................224 Вывод текста средствами Java 2D..................................................................................225 Методы улучшения визуализации..................................................................................230 Упражнение..................................................................................................................231 Заключение.......................................................................................................................231 Вопросы для самопроверки.............................................................................................232 Г 10. О AWT....................................................233 ЛАВА СНОВНЫЕ КОМПОНЕНТЫ Класс Component..............................................................................................................233 Класс Cursor.....................................................................................................................235 Как создать свой курсор..............................................................................................235 Упражнение..................................................................................................................236 События.........................................................................................................................237 Класс Container.................................................................................................................237 События.........................................................................................................................238 Текстовая метка Label......................................................................................................238 События.........................................................................................................................238 Кнопка Button...................................................................................................................238 События.........................................................................................................................239 Кнопка выбора Checkbox.................................................................................................239 События.........................................................................................................................239 Класс CheckboxGroup...................................................................................................239 Как создать группу радиокнопок................................................................................240 Раскрывающийся список Choice.....................................................................................241 События.........................................................................................................................242 Список List........................................................................................................................242 События.........................................................................................................................243 Компоненты для ввода текста.........................................................................................244 Класс TextComponent....................................................................................................244 События.....................................................................................................................245 Строка ввода TextField.................................................................................................245 События.....................................................................................................................246 Поле ввода TextArea.....................................................................................................246 События.....................................................................................................................246 Линейка прокрутки Scrollbar..........................................................................................248 События.........................................................................................................................249 Контейнер Panel...............................................................................................................251 Контейнер ScrollPane.......................................................................................................252 X Оглавление Контейнер Window...........................................................................................................252 События.........................................................................................................................253 Контейнер Frame..............................................................................................................253 События.........................................................................................................................254 Контейнер Dialog.............................................................................................................255 События.........................................................................................................................257 Контейнер FileDialog.......................................................................................................259 События.........................................................................................................................259 Создание собственных компонентов.............................................................................260 Компонент Canvas........................................................................................................260 Создание "легкого" компонента.................................................................................262 Упражнение..................................................................................................................264 Создание меню.................................................................................................................264 Всплывающее меню.........................................................................................................270 Вопросы для самопроверки.............................................................................................273 Г 11. О ГИП S ................................274 ЛАВА ФОРМЛЕНИЕ КОМПОНЕНТАМИ WING Состав библиотеки Swing................................................................................................275 Основные компоненты Swing.........................................................................................277 Компонент JComponent...............................................................................................277 Схема MVC в компонентах Swing..............................................................................278 Надпись JLabel.............................................................................................................280 Кнопки...........................................................................................................................282 Кнопка JButton..........................................................................................................284 Кнопка выбора JToggleButton..................................................................................285 Кнопка выбора JCheckBox.......................................................................................286 Радиокнопка JRadioButton.......................................................................................286 Упражнение..................................................................................................................288 Раскрывающийся список JComboBox........................................................................288 Список выбора JList.....................................................................................................289 Визуализация элементов списков...............................................................................291 Упражнение..................................................................................................................293 Счетчик JSpinner..........................................................................................................293 Полосы прокрутки JScrollBar.....................................................................................294 Ползунок JSlider...........................................................................................................295 Упражнение..................................................................................................................296 Индикатор JProgressBar..............................................................................................296 Дерево объектов JTree.................................................................................................297 Построение меню средствами Swing.............................................................................301 Строка меню JMenuBar...............................................................................................301 Меню JMenu..................................................................................................................301 Пункт меню JMenuItem................................................................................................302 Пункт меню JCheckBoxMenuItem............................................................................303 Пункт меню JRadioButtonMenuItem........................................................................304 Всплывающее меню JPopupMenu..............................................................................304

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.