Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
27.11.2024
Размер:
413.83 Кб
Скачать

Министерство образования и науки Российской Федерации

Саратовский государственный технический университет

Балаковский институт техники, технологии и управления

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Методические указания к самостоятельной работе по дисциплине «Объектно-ориентированное программирование»

для студентов всех форм обучения по направлению 230400.62

Одобрено редакционно-издательским советом Балаковского института техники,

технологии и управления

Балаково 2014

ВВЕДЕНИЕ

Цель работы – изучение основных понятий и возможностей объект-

но-ориентированного программирования на языке Java.

ТЕМЫ, ИЗУЧАЕМЫЕ В КУРСЕ

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Объектно-ориентированное программирование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. ООП возникло в результате развития идеологии про-

цедурного программирования, где данные и подпрограммы (процедуры,

функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное про-

граммирование) и компонента (компонентное программирование, КОП).

Обзор платформы Java Standard Edition (SE)

Java Platform, Standard Edition, сокращенно Java SE (ранее Java 2 Standard Edition или J2SE) — стандартная версия платформы Java 2, пред-

назначенная для создания и исполнения апплетов и приложений, рассчи-

танных на индивидуальное пользование или на использование в масштабах малого предприятия. Не включает в себя многие возможности, предостав-

ляемые более мощной и расширенной платформой Java 2 Enterprise Edition (J2EE), рассчитанной на создание коммерческих приложений масштаба крупных и средних предприятий.

Пакет java.lang содержит фундаментальные классы и интерфейсы,

близко привязанные к языку и системе во время выполнения. Сюда входят корневые классы, которые формируют иерархию классов, типы привязан-

2

ные к определению языка, основные исключения, математические функ-

ции, классы поддержки многопоточности, функции безопасности, а также классы, позволяющие получить информацию относительно операционной системы на которой выполняется программа.

java.io содержит классы для обеспечения файлового ввода-вывода информации, несколько классов абстракции ввода-вывода, а также набор классов для обработки вводимой информации: выделения токенов и т.д.

java.math содержит классы для вычислений над большими целыми числами (класс BigInteger) и над десятичными дробями произвольной точ-

ности (класс BigDecimal). Также содержит методы для произведения опе-

раций над числами: получение их абсолютной величины и т.п.

java.net содержит классы, позволяющие приложению работать с се-

тью, предоставляя абстракции для сетевых адресов, соединений, реализа-

цию сокетов и т.д.

java.text содержит набор классов и утилит, позволяющих организо-

вать работу с различного рода форматами данных, применять имеющиеся или создавать собственные шаблоны форматирования (например формат вывода даты или числа с плавающей точкой).

java.util содержит вспомогательные классы и интерфейсы. Очень удобные и используемые практически в каждой программе.

java.applet служит для работы в браузере.

java.awt содержит классы для написания пользовательских интер-

фейсов, работы с изображениями, рисования.

javax.swing содержит набор графических компонентов, позволяющих создавать графические интерфейсы, работающие по возможности одина-

ково на всех платформах.

Обзор платформы Java Enterprise Edition (EE)

3

Java EE — независимая от платформы, ориентированная на Java сре-

да для разработки, построения и развертывания корпоративных веб-

приложений в интерактивном режиме. Java EE содержит несколько компо-

нентов Java Standard Edition (Java SE). Платформа Java EE состоит из набо-

ра служб, API-интерфейсов и протоколов, предоставляющих функцио-

нальные возможности для разработки многоуровневых веб-приложений.

Java EE упрощает разработку приложений и снижает потребность в программировании и обучении программированию, обеспечивая создание стандартизованных, повторно используемых модульных компонентов и поддерживая уровень автоматической обработки многих прикладных ас-

пектов программирования.

Если вы разработчик корпоративных приложений, то вам нужна сре-

да Java EE. Разработчикам корпоративных приложений требуется Java EE,

поскольку создание распределенных приложений для бизнеса — непростая задача. Им требуется решение с высокой производительностью, позволя-

ющее сосредоточиться только на создании бизнес-логики и предоставля-

ющее полный набор надежных служб корпоративного уровня, таких как объекты распределенных транзакций, ориентированное на обработку со-

общений промежуточное ПО, а также службы имен и каталогов.

Обзор технологий, включенных в платформу Java EE

Платформа J2EE использует модель многоуровневого распределен-

ного приложения. Логически приложение разделено на компоненты в со-

ответствии с их функциональностью. Различные компоненты, составляю-

щие J2EE-приложение, установлены на различных компьютерах в зависи-

мости от их уровня в многоуровневой среде J2EE, которой данный компо-

нент принадлежит. Уровни J2EE-приложения:

Компоненты клиентского уровня работают на клиентской ма-

шине.

4

Компоненты Web-уровня работают на J2EE-сервере.

Компоненты бизнес-уровня работают на J2EE-сервере.

Программное обеспечение уровня корпоративной информацион-

ной системы (EIS) работает на EIS-сервере.

Хотя J2EE-приложение состоит из трех или четырех уровней, много-

уровневые J2EE-приложения обычно принято называть трехуровневыми,

т.к. они расположены на трех различных системах: клиентский компьютер,

сервер J2EE и сервер базы данных или обычный сервер. Трехуровневые приложения, работающие данным способом, расширяют стандартную ар-

хитектуру клиент-сервер, добавляя многопоточный сервер приложений между клиентской частью и сервером базы данных.

J2EE-приложения состоят из компонентов. J2EE-компонента пред-

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

встроенный в приложение J2EE с соответствующими классами и файлами и взаимодействующий с другими компонентами. J2EE-спецификация определяет следующие J2EE-компоненты:

Клиентские приложения и апплеты – это компоненты, работаю-

щие на клиентской машине.

Компоненты технологии Java-сервлет и JavaServer Pages (JSP) –

это Web-компоненты, работающие на сервере.

Корпоративные компоненты – это бизнес-компоненты, работаю-

щие на сервере.

J2EE-компоненты пишутся на языке программирования Java и ком-

пилируются точно так же, как и любая другая Java-программа. Отличием между J2EE-компонентами и "стандартными" классами Java является то,

что J2EE-компоненты собираются в J2EE-приложение, находящееся в строгом соответствии со спецификацией J2EE, развернутое для функцио-

нирования в соответствующем месте и управляемое сервером J2EE.

5

Обзор серверов приложений J2EE

Обычно многоуровневые приложения для тонких клиентов писать тяжело, потому что они включают в себя много строк сложного кода для управления транзакциями и состояниями, многопоточностью, обменом ре-

сурсами и другими комплексными низкоуровневыми задачами. Основан-

ная на компонентах и платформо-независимая архитектура J2EE облегчает написание J2EE-приложений, потому что бизнес-логика локализуется в компонентах многократного использования. Кроме того, J2EE-сервер обеспечивает основные сервисы в форме контейнера для каждого типа компонентов. Т.к. Вы не должны разрабатывать эти сервисы самостоя-

тельно, Вы можете сконцентрироваться на решении текущих бизнес-задач.

Контейнеры являются интерфейсом между компонентом и низко-

уровневыми платформо-зависимыми функциональными возможностями,

поддерживающими компонент. До того, как Web-компонент, корпоратив-

ный компонент или компонент клиентского приложения может быть вы-

полнен, он должен быть скомпонован в J2EE-приложение и размещен внутри своего контейнера.

Процесс компоновки включает в себя определение установок кон-

тейнера для каждого компонента в J2EE-приложении и для самого J2EE-

приложения. Установки контейнера настраивают внутреннюю поддержку,

обеспечиваемую J2EE-сервером, которая включает в себя такие сервисы как безопасность, управление транзакциями, JNDI-поиск и удаленную связь. Вот некоторые из основных положений:

Модель безопасности J2EE позволяет сконфигурировать Web-

компонент или корпоративный компонент так, что доступ к системным ре-

сурсам разрешается только авторизованным пользователям.

Модель транзакции J2EE позволяет вам определять взаимосвязи между методами, которые составляют простую транзакцию, так, что все методы в одной транзакции интерпретируются как один модуль.

6

Сервисы поиска JNDI обеспечивают унифицированный интер-

фейс к различным сервисам каталогов и имен на предприятии, так что компоненты приложения получают доступ к этим сервисам.

Модель удаленного доступа J2EE управляет низкоуровневыми взаимосвязями между клиентами и корпоративными компонентами. После того, как корпоративный компонент создается, клиент вызывает его мето-

ды так, как если бы они находились на той же виртуальной машине.

Тот факт, что J2EE-архитектура обеспечивает конфигурируемые сер-

висы, означает, что компоненты в J2EE-приложении могут вести себе по-

разному, в зависимости от места их размещения. Например, корпоратив-

ный компонент может иметь установки безопасности, дающие ему опреде-

ленный уровень доступа к базе данных в одном рабочем окружении и дру-

гой уровень доступа - в другом.

Контейнер также управляет неконфигурируемыми сервисами, таки-

ми как время жизни корпоративного компонента и сервлета, ресурсный пул (объединение ресурсов) связи с БД, персистенция данных, доступ к

API J2EE-платформы, описанным в разделе "J2EE API". Хотя сохраняе-

мость данных является неконфигурируемым сервисом, J2EE-архитектура позволяет замещать сохраняемость, управляемую контейнером, при помо-

щи включения соответствующего кода в реализацию вашего корпоратив-

ного компонента в тех случаях, когда вы желаете получить больший кон-

троль, чем обеспечиваемый по умолчанию. Например, Вы можете исполь-

зовать персистенцию, управляемую компонентом, для реализации Ваших собственных методов поиска или для создания пользовательского кэша ба-

зы данных.

Обзор платформы Java Micro Edition (ME)

Java Platform, Micro Edition (Java ME, ранее — Java 2 Micro Edition, J2ME) — подмножество платформы Java для устройств, ограниченных в

7

ресурсах, например: сотовых телефонов, карманных персональных компь-

ютеров, ресиверов цифрового телевидения, проигрывателей дисков Blu-

ray.

Java ME разработана под руководством Sun Microsystems и является заменой похожей технологии — PersonalJava. Изначально спецификация разрабатывалась в рамках JCP (Java Community Process) как JSR 68. Позже её варианты развились в отдельные JSR. Sun предоставляет образец реали-

зации (англ. reference implementation) спецификации, но до недавнего вре-

мени не предоставляла бесплатной реализации среды выполнения (англ. runtime environment) Java ME для мобильных устройств. 22 декабря 2006

исходный код Java ME был выпущен под лицензией GNU General Public License, проект получил название phoneME.

Отличительными особенностями устройств с ограниченными ресур-

сами являются ограниченная вычислительная мощность, ограниченный объём памяти, малый размер дисплея, питание от портативной батареи, а

также низкоскоростные и недостаточно надёжные коммуникационные возможности. Типичный мобильный телефон середины двухтысячных со-

держит внутри 32-разрядный RISC-процессор с тактовой частотой 150-250

МГц, имеет объём оперативной памяти около 1-2 Мб, цветной дисплей размером 2 дюйма и имеет возможность соединения с Интернетом посред-

ством GPRS или EDGE со скоростью до 474 кбит/с, которое при этом фун-

даментально ненадёжно, поскольку скорость передачи данных может неожиданно упасть, или соединение может быть вообще полностью поте-

ряно.

Обзор платформы для разработки RIA-приложений (JavaFX)

JavaFX — платформа для создания RIA, позволяет строить унифици-

рованные приложения с насыщенным графическим интерфейсом пользо-

вателя для непосредственного запуска из-под операционных систем, рабо-

8

ты в браузерах и на мобильных телефонах, в том числе, работающих с мультимедийным содержимым.

Технология JavaFX была впервые продемонстрирована корпорацией

Sun Microsystems на конференции JavaOne в мае 2007 года. 4 декабря 2008

года вышла версия 1.0 платформы, содержащая следующие компоненты:

Средства разработки — компилятор и среда исполнения JavaFX,

язык программирования JavaFX Script, а также графические, медийные и веб-библиотеки для создания RIA-приложений для настольных компьюте-

ров, веб-сайтов и мобильных устройств.

Интегрированная среда разработки NetBeans IDE (версии 6.*) —

средства для кодирования и отладки приложений, написанных на JavaFX Script. В редакторе JavaFX Script есть возможность быстрого добавления объектов JavaFX с уже готовыми геометрическими фигурами, компонен-

тами интерфейса пользователя, средствами преобразования и анимацией.

Production Suite — набор инструментов и плагинов для импорта графических объектов в приложения JavaFX. Включает следующие компо-

ненты:

Плагины для графических редакторов Adobe Photoshop CS3, CS4

иAdobe Illustrator CS3, CS4. С помощью плагинов можно экспортировать графические объекты из этих приложений в код JavaFX Script

Media Factory: набор инструментов для конвертирования SVG-

графики в код JavaFX и просмотра графических объектов, импортирован-

ных в JavaFX из других форматов. Также включает примеры приложений,

учебные курсы, статьи, API-документацию и примеры кода.

Обзор платформы Java Card

Java Card — версия Java-платформы для устройств с крайне ограни-

ченными вычислительными ресурсами. По сравнению с другими версиями

Java изменен байткод, требования к исполняющей платформе, состав стан-

9

дартных библиотек.

Основное назначение продукта, как следует из названия — примене-

ние в смарткартах. В связи с этим основной упор был сделан на поддержку стандартных криптоалгоритмов.

Java Card дает возможность безопасным образом устанавливать и исполнять небольшие Java приложения (апплеты) на смарт-картах и дру-

гих устройствах с весьма ограниченным объемом памяти. Эта платформа позволяет поставщику программировать устройства и делать их адаптиро-

ванными под конкретное применение. Java Card широко используется в

SIM-картах и банкоматах. Разработана компанией Schlumberger, представ-

лена публике 29 октября 1996 года несколькими компаниями, включая то-

гдашнее подразделение Schlumberger по производству смарт-карт (теперь компания Gemalto). Программная платформа Java Card описывается спе-

цификациями, разрабатываемыми компанией Sun Microsystems. Кроме то-

го, GlobalPlatform (организация по стандартизации) разрабатывает стан-

дарты для безопасной установки апплетов Java Card на устройства.

Особенности виртуальной машины JVM

Java Virtual Machine (сокращенно Java VM, JVM) — виртуальная машина Java — основная часть исполняющей системы Java, так называе-

мой Java Runtime Environment (JRE). Виртуальная машина Java интерпре-

тирует байт-код Java, предварительно созданный из исходного текста Java-

программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирова-

ния. Например, исходный код на языке Ada может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.

JVM является ключевым компонентом платформы Java. Так как вир-

туальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное

10