loading

Logout succeed

Logout succeed. See you again!

ebook img

Java. Объектно ориентированное программирование PDF

pages397 Pages
release year2011
file size3.056 MB
languageRussian

Preview Java. Объектно ориентированное программирование

ББК 32.972.2-018я7 УДК 004.43(075) В19 Васильев А. Н. В19 Java. Объектно-ориентированное программирование: Учебное пособие. — СПб.: Питер, 2011. — 400 с. ISBN 978-5-49807-948-6 Учебное пособие предназначено для изучающих объектно-ориентированное программирование в вузе, а также для всех желающих самостоятельно изучить язык программирования Java. Книга охватывает все базовые темы, необходимые для эффективного составления программ на Java, в том числе базовые типы данных, управляющие инструкции, особенности описания классов и объектов в Java, создание пакетов и интерфейсов, перегрузку методов и наследование. Особое внимание уделяется созданию приложений с графическим интерфейсом. В первой части книги излагаются основы синтаксиса языка Java. Материала первой части кни- ги достаточно для написания простых программ. Во второй части описываются темы, которые бу- дут интересны тем, кто хочет освоить язык на профессиональном уровне. Каждая глава книги со- держит теоретический материал, иллюстрируемый простыми примерами, позволяющими под- черкнуть особенности языка программирования Java. В конце каждой главы первой части имеется раздел с примерами решения задач. Учебное пособие соответствует Государственному образовательному стандарту 3-го поколения для специальностей «Информатика и вычислительная техника», «Информационные системы и технологии», «Прикладная информатика» и «Фундаментальная информатика и информационные технологии». ББК 32.972.2-018я7 УДК 004.43(075) Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было фор- ме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-5-49807-948-6 © ООО Издательство «Питер», 2011 Краткое оглавление Вступление. О книге и не только .................................9 Часть I. Введение в Java ..........................................15 Глава 1. Основы Java ............................................................................................................16 Глава 2. Управляющие инструкции Java ......................................................................49 Глава 3. Массивы ...................................................................................................................80 Глава 4. Классы и объекты ...............................................................................................110 Глава 5. Методы и конструкторы ..................................................................................153 Глава 6. Наследование и переопределение методов ...............................................198 Часть II. Нетривиальные возможности Java .............. 229 Глава 7. Пакеты и интерфейсы .......................................................................................230 Глава 8. Работа с текстом .................................................................................................242 Глава 9. Обработка исключительных ситуаций .......................................................262 Глава 10. Многопоточное программирование .............................................................282 Глава 11. Система ввода-вывода ......................................................................................299 Глава 12. Создание программ с графическим интерфейсом .................................318 Заключение ...............................................................................................................................376 Литература ................................................................................................................................377 Приложение. Программное обеспечение................. 379 Алфавитный указатель ......................................... 396 Оглавление Вступление. О книге и не только .................................9 Объектно-ориентированное программирование и Java .........................................10 Различия между Java и С++ .............................................................................................11 Программное обеспечение .................................................................................................12 Обратная связь .......................................................................................................................12 Программные коды ..............................................................................................................12 Благодарности ........................................................................................................................13 Часть I. Введение в Java ..........................................15 Глава 1. Основы Java ...............................................................................16 Простые программы .............................................................................................................16 Комментарии ..........................................................................................................................18 Простые типы данных и литералы ................................................................................19 Приведение типов .................................................................................................................23 Основные операторы Java .................................................................................................25 Примеры программ ..............................................................................................................32 Резюме .......................................................................................................................................48 Глава 2. Управляющие инструкции Java ...................................................49 Условная инструкция if() ...................................................................................................49 Условная инструкция switch() .........................................................................................53 Инструкция цикла for() .....................................................................................................56 Инструкция цикла while() ................................................................................................59 Инструкция do-while() .......................................................................................................60 Метки и инструкции break() и continue() ..................................................................61 Примеры программ ..............................................................................................................63 Резюме .......................................................................................................................................78 Глава 3. Массивы ....................................................................................80 Создание одномерного массива .......................................................................................80 Двухмерные и многомерные массивы ..........................................................................83 Символьные массивы ..........................................................................................................87 Присваивание и сравнение массивов ............................................................................89 Оглавление 7 Примеры программ ..............................................................................................................92 Резюме .....................................................................................................................................108 Глава 4. Классы и объекты ....................................................................110 Знакомство с ООП .............................................................................................................110 Создание классов и объектов .........................................................................................114 Статические элементы ......................................................................................................118 Доступ к членам класса ....................................................................................................121 Ключевое слово this ...........................................................................................................124 Внутренние классы.............................................................................................................126 Анонимные объекты ..........................................................................................................128 Примеры программ ............................................................................................................129 Резюме .....................................................................................................................................151 Глава 5. Методы и конструкторы ...........................................................153 Перегрузка методов ............................................................................................................153 Конструкторы .......................................................................................................................156 Объект как аргумент и результат метода ..................................................................159 Способы передачи аргументов .......................................................................................164 Примеры программ ............................................................................................................166 Резюме .....................................................................................................................................197 Глава 6. Наследование и переопределение методов ................................198 Создание подкласса ............................................................................................................198 Доступ к элементам суперкласса ..................................................................................200 Конструкторы и наследование .......................................................................................202 Ссылка на элемент суперкласса ....................................................................................204 Переопределение методов при наследовании ..........................................................208 Многоуровневое наследование ......................................................................................212 Объектные переменные суперкласса и динамическое управление методами .....................................................................................................215 Абстрактные классы...........................................................................................................218 Примеры программ ............................................................................................................220 Резюме .....................................................................................................................................227 Часть II. Нетривиальные возможности Java .............. 229 Глава 7. Пакеты и интерфейсы ...............................................................230 Пакеты в Java .......................................................................................................................230 Интерфейсы ..........................................................................................................................232 Интерфейсные ссылки ......................................................................................................235 Расширение интерфейсов ................................................................................................239 Резюме .....................................................................................................................................240 Глава 8. Работа с текстом ......................................................................242 Объекты класса String ......................................................................................................242 Метод toString() ..................................................................................................................246 Методы для работы со строками ..................................................................................248 Сравнение строк ..................................................................................................................251 8   Оглавление         Поиск подстрок и индексов ............................................................................................253 Изменение текстовых строк............................................................................................254 Класс StringBuffer ...............................................................................................................256 Аргументы командной строки .......................................................................................259 Резюме .....................................................................................................................................260 Глава 9. Обработка исключительных ситуаций .......................................262 Исключительные ситуации .............................................................................................262 Классы исключений ...........................................................................................................264 Описание исключительной ситуации .........................................................................267 Множественный блок catch{} .........................................................................................268 Вложенные блоки try ........................................................................................................270 Искусственное генерирование исключений .............................................................273 Выбрасывание исключений методами ........................................................................275 Контролируемые и неконтролируемые исключения ............................................277 Создание собственных исключений ............................................................................278 Резюме .....................................................................................................................................280 Глава 10. Многопоточное программирование ..........................................282 Поточная модель Java .......................................................................................................282 Создание потока ..................................................................................................................285 Создание нескольких потоков .......................................................................................290 Синхронизация потоков ...................................................................................................293 Резюме .....................................................................................................................................298 Глава 11. Система ввода-вывода ............................................................299 Байтовые и символьные потоки ....................................................................................300 Консольный ввод с использованием объекта System.in ......................................301 Консольный ввод с помощью класса Scanner ..........................................................305 Использование диалогового окна .................................................................................307 Работа с файлами ................................................................................................................310 Резюме .....................................................................................................................................316 Глава 12. Создание программ с графическим интерфейсом .....................318 Создание простого окна ...................................................................................................319 Обработка событий ............................................................................................................323 Приложение с кнопкой .....................................................................................................326 Классы основных компонентов .....................................................................................332 Создание графика функции ............................................................................................339 Калькулятор ..........................................................................................................................355 Основы создания апплетов .............................................................................................363 Резюме .....................................................................................................................................375 Заключение ..........................................................................................376 Литература ...........................................................................................377 Приложение. Программное обеспечение................. 379 Алфавитный указатель ......................................... 396 Вступление. О книге и не только Вниманию читателя предлагается книга по языку программирования Java. В ос- нову книги положены курсы лекций, прочитанные в разное время автором для магистров на физическом факультете Киевского национального университета имени Тараса Шевченко и бакалавров на медико-инженерном факультете Наци- онального технического университета «Киевский политехнический институт». Курс адаптирован для всех желающих самостоятельно изучать язык программи- рования Java и поэтому может использоваться в качестве самоучителя. Материал книги разбит на две части, в каждой из которой по шесть глав, хотя следует признать, что деление это во многом условное. В первой части излага- ются основы синтаксиса языка Java. Этого материала вполне достаточно, чтобы начать писать простые программы. Во второй части описываются темы, интерес- ные тем, кто желает освоить язык на профессиональном уровне. Вообще же кни- га охватывает все базовые темы, необходимые для эффективного составления программ на Java, в том числе в ней описываются базовые типы данных, управ- ляющие инструкции, особенности создания классов и объектов в Java, спосо- бы создания пакетов и интерфейсов, перегрузка методов и наследование. Кроме того, отдельно рассматриваются вопросы создания приложений с графическим интерфейсом. Этой теме посвящена последняя глава книги. Теоретический материал каждой главы иллюстрируется достаточно простыми примерами, позволяющими подчеркнуть особенности языка программирования Java. В конце каждой главы первой части имеется раздел с примерами решения задач. Это более сложные по сравнению с примерами основной части главы за- дачи и нередко для их решения приходится использовать специальные подходы или приемы. Разделы с примерами призваны продемонстрировать практические приемы применения программных средств Java для составления эффективных программных кодов. Для лучшего усвоения материала в конце каждой главы имеется краткое резюме. 10 Вступление. О книге и не только Объектно-ориентированное программирование и Java Язык Java является полностью объектно-ориентированным. Это означает, что любая программа, написанная на языке Java, должна поддерживать парадигму объект но- ориентированного программирования (сокращенно ООП). В отличие от традици- онного процедурного программирования, объектно-ориентированные программы подразумевают описание классов и, как правило, создание объектов. На сегод- няшний день существует несколько наиболее популярных языков программиро- вания, поддерживающих концепцию ООП. В первую очередь это C++, С# и Java. Исторически первым появился язык C++, ставший существенно усовершенство- ванной версией языка C. Усовершенствования касались главным образом под- держки парадигмы ООП. Именно С++ стал в известном смысле родительским для языков С# и Java. В этом несложно убедиться, если сравнить синтаксисы языков — они очень схожи. Язык C++ в известном смысле является «переход- ным», поскольку позволяет писать программы как с использованием классов, так и без них. В то же время такие языки, как Java и C#, для составления даже самой простой программы требуют использовать концепцию классов. Язык Java является продуктом компании Sun Microsystems (теперь эта компания поглощена корпорацией Oracle), язык C# поддерживается компанией Microsoft. Языки программирования Java и C# можно рассматривать как попытку «усовер- шенствовать» и «адаптировать» используемые в C++ подходы для эффективного создания программных кодов, ориентированных на Интернет. В данном случае задачи и проблемы, которые решали создатели языка C#, нас интересовать не будут, а вот об особенностях языка Java хочется сказать несколько слов. «Написано однажды — работает везде!» — эти слова можно назвать главным принципом, положенным в основу технологии Java. Именно на создание универ- сальной технологии программирования были направлены усилия разработчиков компании Sun Microsystems, в результате чего и появился язык программирова- ния Java. Периодом создания языка принято считать годы с 1991 по 1995. К тому времени остро встала проблема составления эффективных программ для работы в Интернете. В этом случае важное место занимают вопросы совместимости программного обеспечения, поскольку особенностью интернет-среды является принципиальное разнообразие используемых операционных систем и аппарат- ного обеспечения. Другими словами, задача состояла в том, чтобы эффектив- ность и корректность написанных на Java программ не зависела (или почти не зависела) от типа процессора или операционной системы. Решение задачи было найдено в рамках концепции виртуальной Java-машины. Так, если обычно при компиляции программы (например, написанной на C++) на выходе мы получаем исполнительный машинный код, то в результате ком- пиляции Java-программы получают промежуточный байт-код, который выпол- няется не операционной системой, а виртуальной Java-машиной ( Java Virtual Machine, JVM). Разумеется, предварительно виртуальная Java-машина должна быть установлена на компьютер пользователя. С одной стороны, это позволяет создавать достаточно универсальные программы (в том смысле, что они могут

See more

The list of books you might like