Программирование на Java. Учебный курс Sun Microsystems и МФТИ

Интернет-портал MegaWEB

Интернет-портал MegaWEB содержит много ресурсов для веб-мастеров, интернет-разработчиков, веб-дизайнеров и seo-оптимизаторов. Это видеоуроки, книги и справочники в формате ebook: PDF-CHM-DJVU, а также программы и утилиты для того, чтобы сделать сайт или раскрутить сайт в сети Интернет.

Методическое руководство «Программирование на Java»

Версия для печати и PDA

Методическое руководство «Программирование на Java» опирается на четырехлетний опыт преподавания курсов по Java студентам МФТИ. По инициативе Sun Microsystems курс переработан таким образом, чтобы максимально облегчить процесс сертификации по Java для студентов, прослушавших курс. При подготовке курсов использован опыт создания информационных систем на основе Java технологий, накопленный Центром Sun технологий МФТИ и Центром открытых систем и высоких технологий МФТИ. Данное руководство предназначено для преподавателей информатики в ВУЗах России, принимающих участие по постановке курсов преподавания Java в рамках программы поддержки процесса обучения информационным технологиям в ВУЗах, представленной представительством компании Sun Microsystems в странах СНГ и Московским физико-техническим институтом – МФТИ.

Программирование на Java. Учебный курс Sun Microsystems и МФТИ

Описание структуры курса «Программирование на Java»

  1. Что такое Java? История создания. Это вводный материал, в котором кратко описывается история появления и развития языка Java. Такие знания позволят лучше понять особенности платформы и спектр существующих продуктов и технологий.
  2. Основы объектно-ориентированного программирования, излагает основные концепции объектно-ориентированного подхода – ООП к проектированию программного обеспечения. Поскольку в языке Java почти все типы, за исключением 8 простейших, являются объектными, владение ООП является необходимым условием для успешного применения языка Java.
  3. Лексика языка, посвящена описанию лексики языка Java. Лексика описывает из чего состоит текст программы, каким образом он записывается и на какие простейшие лексемы компилятор разбивает программу при анализе. Эта тема раскрывает многие детали внутреннего устройства языка Java, и невозможно написать ни одной строчки кода, не затронув ее.
  4. Типы данных, начинается с введения понятия переменной, на примере которой иллюстрируются особенности применения типов в Java. Типы данных определяют основные возможности любого языка. Кроме того, Java является строго типизированным языком, а потому четкое понимание модели типов данных сильно помогает в написании качественных программ. Описывается разделение всех типов на простейшие и ссылочные, операции над значениями различных типов, а также особый класс Class, который выполняет роль мета класса в Java.
  5. Имена. Пакеты. Здесь рассматриваются сразу две темы – система именования элементов языка в Java и пакеты, которые являются аналогами библиотек для других языков. Почти все конструкции в Java имеют имя для обращения к ним из других частей программы. По ходу изложения вводятся важные понятия, в частности – область видимости имени. При перекрытии таких областей возникает конфликт имен. Для того, чтобы минимизировать риск появления таких ситуаций, описываются соглашения по именованию, предложенные компанией Sun. Пакеты осуществляют физическую и логическую группировку классов, и становятся необходимыми при создании больших систем. Вводится важное понятие модуля компиляции и описывается его структура.
  6. Объявление классов, – это центральная тема курса, поскольку любое Java-приложение является набором классов. Первый рассматриваемый вопрос – система разграничения доступа в Java. Описывается, зачем вообще нужно управление доступом в объектно-ориентированном языке программирования, а также, как оно осуществляется непосредственно в языке Java. Также здесь подробно рассматривается структура объявления заголовка класса и его тела, которое состоит из полей, методов, конструкторов и инициализаторов. Дополнительно описывается сигнатура метода main, с которого начинается работа Java-приложения, правила передачи параметров различных типов в методы, перегруженные методы.
  7. Преобразование типов, посвящена вопросам преобразования типов. Поскольку Java – это строго типизированный язык, компилятор и виртуальная машина всегда следят за работой с типами, гарантируя надежность выполнения программы. Однако во многих случаях то или иное преобразование необходимо осуществить для реализации логики программы. С другой стороны, некоторые безопасные переходы между типами Java позволяет осуществлять неявным для разработчика образом, что может привести к неверному пониманию работы программы. Рассмотрены все возможные виды преобразований и варианты программного кода, где они могут применяться. В заключение приводится начало классификации типов переменных и типов значений, которые они могут хранить.
  8. Объектная модель в Java, является некоторым отступлением от рассмотрения технических особенностей Java и посвящена в основном изучению ключевых свойств объектной модели Java, таких как статические элементы, абстрактные методы и классы, интерфейсы, заменяющие множественное наследование. Без этих мощных конструкций, язык Java был бы не способен решать серьезные задачи. В заключение рассматриваются принципы работы полиморфизма для полей и методов, статических и динамических. Уточняется классификация типов переменных и типов значений, которые они могут хранить.
  9. Массивы, посвящена рассмотрению массивов в Java. Массивы присутствуют практически во всех языках программирования, поскольку многие задачи требуют оперировать с целым рядом однотипных значений. Массивы в Java – один из ссылочных типов, который однако имеет особенности при инициализации, создании и оперировании со своими значениями. Наибольшие различия проявляются при преобразовании таких типов. Рассматривается, почему многомерные массивы в Java можно, а зачастую более правильно – нужно, рассматривать как одномерные. В завершение дается классификация типов переменных и типов значений, которые они могут хранить, а также рассматривается механизм клонирования в языке Java, позволяющий в любом классе легко описать возможность создавать точные копии объектов, порожденных от него.
  10. Операторы и структура кода, содержит важные понятия, связанные с логикой управления выполнением программы. Здесь описываются метки, операторы условного перехода, циклы, операторы break и continue. Дополнительно рассмотрены более концептуальные механизмы Java, а именно обработка с ошибок и исключительных ситуаций. Описаны причины возникновения сбоев, способы их обработки, объявление собственных типов исключительных ситуаций. Приводится классификация всех ошибок на проверяемые и непроверяемые компилятором, а также ошибки времени исполнения.
  11. Пакет java.awt, посвящена рассмотрению простейшей графической библиотеки java.awt.
  12. Потоки выполнения. Синхронизация. Здесь рассматриваются особенности создания многопоточных приложений. Такая возможности присутствует в языке Java начиная с самых первых версий его реализации. Первый вопрос – как на много- и, самое интересное, однопроцессорных машинах выполняются несколько потоков одновременно, и для чего они нужны в программе. Далее описываются классы, необходимые для создания, запуска и управления потоками в Java. При одновременной работе с данными из нескольких мест возникает проблема синхронного доступа, блокировок и, как следствие, взаимных блокировок. Поэтому здесь же демонтируются все механизмы, присутствующие в языке Java, для корректной организации такой логики работы.
  13. Пакет java.lang, посвящена основной библиотеке Java – java.lang, в которой содержатся классы Object и Class, классы-обертки для примитивных типов, класс Math, классы для работы со строками String и StringBuffer, системные классы System, Runtime и другие. В этом же пакете находятся типы, уже рассматриваемые ранее – для работы с исключительными ситуациями и потоками исполнения.
  14. Пакет java.util, посвящена пакету java.util, в котором содержится множество вспомогательных классов и интерфейсов. Они настолько удобны, что практически любая программа использует эту библиотеку. Центральную часть в изложении материала занимает тема контейнеров или коллекций – классов, хранящих упорядоченные ссылки на ряд объектов. Они были серьезно переработаны в ходе создания версии Java 2. Также рассматриваются классы для работы с датой, для генерации случайных чисел, для обеспечения поддержки многих национальных языков в приложении и другие.
  15. Пакет java.io, описывает возможности Java для обмена или передачи информации, что является важной функциональностью для большинства программных систем. Сюда входит работа с файлами, с сетью, долговременное сохранение объектов, обмен данными между потоками исполнения и т.п. Все эти действия базируются на двоичных потоках InputStream / OutputStream и символьных потоках Reader / Writer. Библиотека java.io содержит все эти классы и их многочисленных наследников, предоставляющих полезные возможности. Отдельно рассматривается механизм сериализации объектов и работа с файлами.
  16. Введение в сетевые протоколы, завершает курс. В ней рассматриваются возможности построения сетевых приложений. Сначала дается краткое введение в сетевые протоколы, семиуровневую модель OSI, стек протоколов TCP/IP и описываются основные утилиты, предоставляемые операционной системой для мониторинга сети. Знание этих вещей необходимо, поскольку библиотека java.net по сути является интерфейсом для работы с перечисленными протоколами. Рассматриваются классы для соединений через высокоуровневые протоколы, протоколы TCP и UDP.

Методическое руководство «Программирование на Java» рекомендовано УМО в области прикладной информатики для студентов высших учебных заведений, обучающихся по специальностям "Информатика" и "Прикладная информатика". На его основе возможна переподготовка преподавателей для чтения курсов по Java на основе совместного учебного центра Sun Microsystems и Центра дополнительного профессионального образования МФТИ.

Формат: PDF
Качество: eBook
Страниц: 487

Поделиться с друзьями