Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

д.) и добавлен в систему в ви­де загружаемой динамической библиотеки (например, DLL для Windows). Существует специальная спецификация JNI (Java Native Interface), опи­сывающая правила создания и использования native-методов.

Такая возможность для Java необходима, поскольку многие компа­нии имеют обширные программные библиотеки, написанные на более старых языках. Их было бы очень трудоемко и неэффективно переписы­вать на Java, поэтому необходима возможность подключать их в таком ви­де, в каком они есть. Безусловно, при этом Java-приложения теряют целый ряд своих преимуществ, таких, как переносимость, безопасность и другие. Поэтому применять JNI следует только в случае крайней необходимости.

Эта спецификация накладывает требования на имена процедур во внешних библиотеках (она составляет их из имени пакета, класса и само­го native-метода), а поскольку библиотеки менять, как правило, очень неудобно, часто пишут специальные библиотеки-"обертки", к которым обращаются Java-классы через JNI, а они сами обращаются к целевым модулям.

Наконец, существует еще один специальный модификатор synchro­nized, который будет рассмотрен в лекции, описывающей потоки выпол­нения.

После перечисления модификаторов указывается имя (простое или составное) типа возвращаемого значения; это может быть как примитив­ный, так и объектный тип. Если метод не возвращает никакого значения, указывается ключевое слово void.

Затем определяется имя метода. Указанный идентификатор при объ­явлении становится простым именем метода. Составное имя формирует­ся из имени класса или имени переменной объектного типа и простого имени метода. Областью видимости метода является все объявление тела класса.

Аргументы метода перечисляются через запятую. Для каждого ука­зывается сначала тип, затем имя параметра. В отличие от объявления пе­ременной здесь запрещается указывать два имени для одного типа:

// void cale (double х, у); - ошибка! void cale (double х, double у);

Если аргументы отсутствуют, указываются пустые круглые скобки. Одноименные параметры запрещены. Создание локальных переменных в методе, с именами, совпадающими с именами параметров, запрещено. Для каждого аргумента можно ввести ключевое слово final перед указани­ем его типа. В этом случае такой параметр не может менять своего значе­ния в теле метода (то есть участвовать в операции присвоения в качестве левого операнда).