- •Содержание
- •Глава 1. Общие представления о языке Java 6
- •Глава 2. Объектно-ориентированное проектирование и платформа NetBeans 26
- •Глава 3. Примитивные типы данных и операторы для работы с ними 78
- •Глава 4. Работа с числами в языке Java 95
- •Глава 5. Управляющие конструкции 112
- •Глава 6. Начальные сведения об объектном программировании 128
- •Глава 7. Важнейшие объектные типы 175
- •Введение
- •Глава 1. Общие представления о языке Java
- •1.1. Java и другие языки программирования. Системное и прикладное программирование
- •1.2. Виртуальная Java-машина, байт-код, jit-компиляция. Категории программ, написанных на языке Java
- •1.3.Алфавит языка Java. Десятичные и шестнадцатеричные цифры и целые числа. Зарезервированные слова Алфавит языка Java
- •Десятичные и шестнадцатеричные цифры и целые числа
- •Зарезервированные слова языка Java
- •1.4. Управляющие последовательности. Символы Unicode. Специальные символы Управляющие последовательности
- •Простые специальные символы
- •Составные специальные символы
- •1.5.Идентификаторы. Переменные и типы. Примитивные и ссылочные типы
- •Краткие итоги по главе 1
- •Задания
- •Глава 2. Объектно-ориентированное проектирование и платформа NetBeans
- •2.1.Процедурное и объектно-ориентированное программирование. Инкапсуляция
- •2.2. Работа со ссылочными переменными. Сборка мусора
- •2.3. Проекты NetBeans. Пакеты. Уровни видимости классов. Импорт классов
- •2.4. Базовые пакеты и классы Java
- •2.5. Создание в NetBeans простейшего приложения Java
- •2.6. Компиляция файлов проекта и запуск приложения
- •2.7. Структура проекта NetBeans
- •2.8. Создание в NetBeans приложения Java с графическим интерфейсом
- •2.9. Редактор экранных форм
- •2.10. Внешний вид приложения
- •2.11. Ведение проектов
- •2.11. Редактирование меню экранной формы
- •2.12. Создание нового класса
- •2.13. Документирование исходного кода в Java
- •2.14. Основные компоненты пакетов swing и awt
- •2.15. Технологии Java и .Net
- •Краткие итоги по главе 2
- •Задания
- •Глава 3. Примитивные типы данных и операторы для работы с ними
- •3.1.Булевский (логический) тип
- •3.2.Целые типы, переменные, константы
- •3.3.Основные операторы для работы с целочисленными величинами
- •3.4.Вещественные типы и класс Math
- •3.5.Правила явного и автоматического преобразования типа при работе с числовыми величинами
- •3.6. Оболочечные классы. Упаковка (boxing) и распаковка (unboxing)
- •3.7.Приоритет операторов
- •3.8.Типы-перечисления (enum)
- •Краткие итоги по главе 3
- •Задания
- •Глава 4. Работа с числами в языке Java
- •4.1 Двоичное представление целых чисел Позиционные и непозиционные системы счисления
- •Двоичное представление положительных целых чисел
- •Двоичное представление отрицательных целых чисел. Дополнительный код
- •Проблемы целочисленной машинной арифметики
- •Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую
- •4.2. Побитовые маски и сдвиги
- •4.3. Двоичное представление вещественных чисел Двоичные дроби
- •Мантисса и порядок числа
- •Стандарт ieee 754 представления чисел в формате с плавающей точкой*
- •Краткие итоги по главе 4
- •Задания
- •Глава 5. Управляющие конструкции Составной оператор
- •Условный оператор if
- •Оператор выбора switch
- •Условное выражение …?... : …
- •Оператор цикла for
- •Оператор цикла while – цикл с предусловием
- •Оператор цикла do...While – цикл с постусловием
- •Операторы прерывания continue, break, return, System.Exit
- •Краткие итоги по главе 5
- •Задания
- •Глава 6. Начальные сведения об объектном программировании
- •Наследование и полиморфизм. Uml-диаграммы
- •Функции. Модификаторы. Передача примитивных типов в функции
- •Локальные и глобальные переменные. Модификаторы доступа и правила видимости. Ссылка this
- •Передача ссылочных типов в функции. Проблема изменения ссылки внутри подпрограммы
- •Наследование. Суперклассы и подклассы. Переопределение методов
- •Наследование и правила видимости. Зарезервированное слово super
- •Статическое и динамическое связывание методов. Полиморфизм
- •Базовый класс Object
- •Конструкторы. Зарезервированные слова super и this. Блоки инициализации
- •Удаление неиспользуемых объектов и метод finalize. Проблема деструкторов для сложно устроенных объектов
- •Перегрузка методов
- •Правила совместимости ссылочных типов как основа использования полиморфного кода. Приведение и проверка типов
- •Рефакторинг
- •Reverse engineering – построение uml-диаграмм по разработанным классам
- •Краткие итоги по главе 6
- •Задания
- •Глава 7. Важнейшие объектные типы Массивы
- •Коллекции, списки, итераторы
- •Работа со строками в Java. Строки как объекты. Классы String, StringBuffer и StringBuilder
- •Работа с графикой
- •Исключительные ситуации Обработка исключительных ситуаций
- •Иерархия исключительных ситуаций
- •Объявление типа исключительной ситуации и оператор throw
- •Объявление метода, который может возбуждать исключительную ситуацию. Зарезервированное слово throws
- •Работа с файлами и папками
- •Краткие итоги по главе 7
- •Задания
- •Глава 8. Наследование: проблемы и альтернативы. Интерфейсы. Композиция Проблемы множественного наследования классов. Интерфейсы
- •Отличия интерфейсов от классов. Проблемы наследования интерфейсов
- •Пример на использование интерфейсов
- •Композиция как альтернатива множественному наследованию
- •Краткие итоги по главе 8
- •Задания
- •Глава 9. Дополнительные элементы объектного программирования на языке Java Потоки выполнения (threads) и синхронизация
- •Преимущества и проблемы при работе с потоками выполнения
- •Синхронизация по ресурсам и событиям
- •Класс Thread и интерфейс Runnable. Создание и запуск потока выполнения
- •Поля и методы, заданные в классе Thread
- •Подключение внешних библиотек dll.“Родные” (native) методы*
- •Краткие итоги по главе 9
- •Задания
- •Глава 10. Введение в сетевое программирование Краткая справка по языку html
- •Апплеты
- •Сервлеты
- •Технология jsp – Java Server Pages
- •Краткие итоги по главе 10
- •Задания
- •Глава 11. Встроенные классы Виды встроенных классов
- •Вложенные (nested) классы и интерфейсы
- •Внутренние (inner) классы
- •Локальные (local) классы
- •Анонимные (anonimous) классы и обработчики событий
- •Анонимные (anonimous) классы и слушатели событий (listeners)
- •Краткие итоги по главе 11
- •Задания
- •Глава 12. Компонентное программирование Компонентная архитектура JavaBeans
- •Мастер создания компонента в NetBeans
- •Пример создания компонента в NetBeans – панель с заголовком
- •Добавление в компонент новых свойств
- •Добавление в компонент новых событий
- •Краткие итоги по главе 12
- •Задания
- •Литература
- •Дополнительная литература
- •276 Курс подготовлен при поддержке Sun Microsystems
Краткие итоги по главе 10
HTML - язык разметки гипертекста. Гипертекст (“сверхтекст”) – это текст, содержащий дополнительные возможности, в частности – гиперссылки. Документ, написанный на языке HTML, представляет собой текстовый файл, содержащий собственно текст, несущий информацию пользователю, и теги разметки (murkup tags).
Теги представляют собой определенные последовательности символов, заключенные между знаками '<' и '>'. Они предназначены для форматирования и разметки документа. Теги бывают парные ("контейнеры") и непарные. Действие парного тега начинается с открывающего тега и заканчивается при встрече соответствующего ему закрывающего, признаком которого является символ " / ".
При ссылке на документ, находящийся на другом сервере, необходимо указать адрес (URL - 'Uniform Recourses Location') этого документа: сетевой адрес сервера и путь к этому документу на сервере. Если документ находится на том же сервере, но в другой папке, достаточно указать только путь к этой папке. Гипертекстовая ссылка имеет вид <a href="имя_файла">текст_ссылки</a>
Для создания обычного апплета требуется задать класс, являющийся наследником класса java.applet.Applet, а для апплетов, использующих компоненты Swing и/или библиотеку Sun JFC (Java Foundation Classes) - наследником класса javax.swing.JApplet.
В классе апплета требуется переопределить ряд методов - init, start, update, paint, getAppletInfo, stop, destroy.
Сервлеты – это приложения Java , запускаемые со стороны сервера. Они имеют возможности доступа к файловой системе и другим ресурсам сервера через набор управляющих конструкций, предопределённых в рамках пакета javax.servlet и технологии JSP.
Технология JSP заключается в наличии дополнительных конструкций в HTML- или XML-документах, которые позволяют осуществлять вызовы сценариев (“скриптов”), написанных на языке Java. В результате удаётся очень просто и удобно осуществлять обработку данных или элементов документа, и внедрять в нужные места документа результаты обработки.
Задания
Написать апплет, рисующий эллипс, и использующий этот апплет HTML-документ. Проверить показ этого HTML-документа в AppletViewer и браузере.
Изучить работу и исходный код TomcatServletExample. Видоизменить в нём пример HelloWorld Example, обеспечив вывод документа с вашими данными: фамилией, именем, отчеством. В конце документа обеспечить вывод даты генерации этого документа. Для этого использовать объект типа Date (как преобразовать его в строку?).
Глава 11. Встроенные классы Виды встроенных классов
Начиная с jdk 1.1 в язык Java были введены новые возможности для работы с классами, позволяющие реализовать дополнительные возможности инкапсуляции и композиции – так называемые “встроенные классы”.
Они делятся на несколько категорий:
Вложенные (nested) классы и интерфейсы – используются для задания совершенно самостоятельных классов и интерфейсов внутри классов. Должны при задании иметь модификатор static. Имя класса верхнего уровня используется в качестве квалификатора в пространстве имён, во всём остальном они ведут себя как обычные классы.
Внутренние (inner) классы – служат для создания экземпляров, принадлежащих экземплярам класса верхнего уровня. То есть их экземпляры не могут существовать вне объектов верхнего уровня. Не допускается создания методов класса или переменных внутреннего класса. Использование внутренних классов позволяет реализовать в Java большинство возможностей модулей из процедурных языков программирования – в этом случае в качестве модуля выступает внешний класс.
Локальные (local) классы – задаются внутри блоков программного кода в методах или блоках инициализации. Они носят вспомогательный характер, и область видимости и жизни экземпляров этих классов ограничивается соответствующим блоком программного кода. Как и в случае внутренних классов, это позволяет реализовать в Java возможности модулей из процедурных языков программирования. И в этом случае в качестве модуля также выступает внешний класс.
Анонимные (anonimous) классы – совмещают декларацию, реализацию и вызов. Не имеют ни имени, ни конструктора. Их обычно используют в обработчиках событий.