Смекни!
smekni.com

Общие представления о языке Java 5 (стр. 2 из 68)

Работа с графикой............................................................................................................................................................... 180

Исключительные ситуации.............................................................................................................................................. 183

Обработка исключительных ситуаций................................................................................................................... 183

Иерархия исключительных ситуаций...................................................................................................................... 185

Объявление типа исключительной ситуации и оператор throw....................................................................... 186

Объявление метода, который может возбуждать исключительную ситуацию. Зарезервированное слово throws............................................................................................................................................................................................. 187

Работа с файлами и папками........................................................................................................................................... 188

Работа с файлами и папками с помощью объектов типа File............................................................................ 188

Выбор файлов и папок с помощью файлового диалога..................................................................................... 192

Работа с потоками ввода-вывода.............................................................................................................................. 195

Краткие итоги по главе 7.................................................................................................................................................. 202

Задания.................................................................................................................................................................................. 203

Глава 8. Наследование: проблемы и альтернативы. Интерфейсы. Композиция................................................... 204

Проблемы множественного наследования классов. Интерфейсы......................................................................... 204

Отличия интерфейсов от классов. Проблемы наследования интерфейсов........................................................ 206

Пример на использование интерфейсов....................................................................................................................... 208

Композиция как альтернатива множественному наследованию.......................................................................... 210

Краткие итоги по главе 8.................................................................................................................................................. 212

Задания.................................................................................................................................................................................. 212

Глава 9. Дополнительные элементы объектного программирования на языке Java........................................... 214

Потоки выполнения (threads) и синхронизация.......................................................................................................... 214

Преимущества и проблемы при работе с потоками выполнения.................................................................... 214

Синхронизация по ресурсам и событиям............................................................................................................... 215

Класс Thread и интерфейс Runnable. Создание и запуск потока выполнения............................................ 217

Поля и методы, заданные в классе Thread.............................................................................................................. 219

Подключение внешних библиотек DLL.“Родные” (native) методы*.................................................................... 221

Краткие итоги по главе 9.................................................................................................................................................. 224

Задания.................................................................................................................................................................................. 225

Глава 10. Введение в сетевое программирование.......................................................................................................... 227

Краткая справка по языку HTML................................................................................................................................... 227

Апплеты................................................................................................................................................................................. 232

Сервлеты................................................................................................................................................................................ 234

Технология JSP – Java Server Pages................................................................................................................................ 237

Краткие итоги по главе 10................................................................................................................................................ 241

Задания.................................................................................................................................................................................. 242

Глава 11. Встроенные классы.............................................................................................................................................. 243

Виды встроенных классов................................................................................................................................................ 243

Вложенные (nested) классы и интерфейсы................................................................................................................... 243

Внутренние (inner) классы................................................................................................................................................ 244

Локальные (local) классы.................................................................................................................................................. 246

Анонимные (anonimous) классы и обработчики событий....................................................................................... 246

Анонимные (anonimous) классы и слушатели событий (listeners)......................................................................... 247

Краткие итоги по главе 11................................................................................................................................................ 250

Задания.................................................................................................................................................................................. 251

Глава 12. Компонентное программирование................................................................................................................... 252

Компонентная архитектура JavaBeans........................................................................................................................ 252

Мастер создания компонента в NetBeans.................................................................................................................... 253

Пример создания компонента в NetBeans – панель с заголовком......................................................................... 256

Добавление в компонент новых свойств...................................................................................................................... 259

Добавление в компонент новых событий..................................................................................................................... 261

Краткие итоги по главе 12................................................................................................................................................ 265

Задания.................................................................................................................................................................................. 266

Литература................................................................................................................................................................................. 267

Дополнительная литература........................................................................................................................................... 267


Введение

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

Данный курс основан на лекциях, читавшихся автором студентам кафедры вычислительной физики физического факультета СПбГУ, но был существенно переработан. Курс рассчитан на широкую аудиторию начинающих программистов, от школьников-старшеклассников до студентов старших курсов, а также людей, желающих самостоятельно научиться программировать на этом языке. Кроме того, курс может быть интересен даже опытным программистам, которые по каким-либо причинам не отслеживали изменения и нововведения в Java за последние годы. Курс содержит информацию об основных синтаксических конструкциях языка Java, особенностях и типичных ошибках их использования, а также сведения о современных средах разработки.

Одной из привлекательных особенностей языка Java с самого начала была бесплатность распространения базовых средств разработки (SDK – Software Development Kit) и исполняющей среды Java (виртуальной Java-машины). Однако компилятор, входящий в состав SDK, работал в режиме командной строки, то есть отставал идеологически по крайней мере на 20 лет от современных профессиональных компиляторов. В 2006 году корпорация Sun Microsystems пошла на беспрецедентный шаг – сделала бесплатными профессиональные средства разработки программного обеспечения.

Еще одним шагом Sun в направлении открытости программного обеспечения, в том числе - исходного кода, стала разработка платформы NetBeans. Это среда, основанная на принципах компонентного программирования. Она включает в себя как среду разработки, так и набор библиотечных компонентов ( Beans – “зёрна”. Игра слов: язык Java получил название по имени кофе, которое любили программисты, так что название компонентной модели Java Beans может быть расшифровано как “зёрна кофе Java”). Компонентная модель NetBeans – дальнейший шаг после Java Beans.

Среда разработки NetBeans может быть свободно загружено с сайта Sun и распространяется на условиях лицензии Sun Public License (SPL). Данная лицензия подразумевает, что всё программное обеспечение, написанное на условиях SPL, поставляется с открытым исходным кодом (source code). В настоящее время продукт Sun Java Studio Enterprise прекратил самостоятельное существование и стал расширением среды NetBeans – теперь это NetBeans Enterprise Pack.

Все примеры, приводящиеся в данной книге, разработаны и проверены в среде NetBeans версии 5.5 с JDK1.5.0_04.

Упоминаемые в данной книге названия

Java® и Solaris® - являются торговыми марками корпорации Sun Microsystems

Windows® - является торговой маркой корпорации Microsoft

MacOS®- является торговой маркой корпорации Apple

Глава 1. Общие представления о языке Java

1.1. Java и другие языки программирования. Системное и прикладное программирование

Язык программирования Java был создан в рамках проекта корпорации Sun Microsystems по созданию компьютерных программно-аппаратных комплексов нового поколения. Первая версия языка была официально опубликована в 1995 году. С тех пор язык Java стал стандартом де-факто, вытеснив за десять лет языки C и C++ из многих областей программирования. В 1995 году они были абсолютными лидерами, но к 2006 году число программистов, использующих Java, стало заметно превышать число программистов, использующих C и C++, и составляет более четырёх с половиной миллионов человек. А число устройств, в которых используется Java, превышает полтора миллиарда.

Как связаны между собой языки C, C++, JavaScript и Java? Что между ними общего, и в чём они отличаются? В каких случаях следует, а в каких не следует их применять? Для того чтобы ответить на этот вопрос, следует сначала остановиться на особенностях программного обеспечения предыдущих поколений и о современных тенденциях в развитии программного обеспечения.