Литвек - электронная библиотека >> Брюс Эккель >> Java, Java Script и др. >> Философия Java3

БИБЛИОТЕКА ПРОГРАММИСТА

Брюс Эккель

Философия Java3. Иллюстрация № 1

4-е издание

{^ППТЕР

Москва - Санкт-Петербург - Нижний Новгород - Воронеж Ростов-на-Дону - Екатеринбург - Самара - Новосибирск Киев - Харьков - Минск

2009

ББК 32.973 2-018.1

УДК 004.3

Э38

Эккель Б.

Э38 Философия Java. Библиотека программиста. 4-е изд. — СПб.: Питер, 2009. — 640 е.: ил. — (Серия «Библиотека программиста»).

ISBN 978-5-388-00003-3

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

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

ББК 32.973.2-018.1 УДК 004.3

Права на издание получены по соглашению с Prentice Hall PTR.

Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.

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

ISBN 978-0131872486 (англ ) © Prentice Hall PTR, 2006

ISBN 978-5-388-00003-3 © Перевод на русский язык ООО «Питер Пресс», 2009

© Издание на русском языке, оформление ООО «Питер Пресс», 2009

Содержание

Предисловие............................13

Java SE5 и SE6................................14

Благодарности................................14

Глава 1. Введение в объекты....................17

Развитие абстракции........ ...................18

Объект имеет интерфейс..........................20

Объект предоставляет услуги........................22

Скрытая реализация.............................23

Повторное использование реализации....................24

Наследование................................25

Взаимозаменяемые объекты и полиморфизм.................29

Однокорневая иерархия...........................33

Контейнеры.................................33

Параметризованные типы..........................35

Создание, использование объектов и время их жизни............36

Обработка исключений: борьба с ошибками.................38

Параллельное выполнение.........................38

Java и Интернет...............................39

Резюме...................................47

Глава 2. Все является объектом..................48

Для работы с объектами используются ссылки................48

Все объекты должны создаваться явно...................49

Объекты никогда не приходится удалять..................53

Создание новых типов данных.........................54

Методы, аргументы и возвращаемые значения...............56

Создание программы на Java........................58

Ключевое слово static............................60

Наша первая программа на Java.......................61

Комментарии и встроенная документация..................64

Стиль оформления программ........................70

Резюме...................................70

Глава 3. Операторы........................71

Простые команды печати..........................71

Операторы Java...............................72

Литералы..................................82

В Java отсутствует sizeof()..........................92

Резюме...................................100

Глава 4. Управляющие конструкции................101

Синтаксис foreach.............................105

return, ...................................107

break и continue..............................108

Нехорошая команда goto..........................109

Резюме...................................115

Глава 5. Инициализация и завершение..............116

Конструктор гарантирует инициализацию.................116

Перегрузка методов............................118

Очистка: финализация и сборка мусора..................130

Инициализация членов класса.......................137

Инициализация конструктором.......................140

Инициализация массивов..........................146

Резюме...................................151

Глава 6. Управление доступом...................152

Пакет как библиотечный модуль......................153

Спецификаторы доступа Java........................159

Интерфейс и реализация..........................163

Доступ к классам..............................164

Резюме...................................167

Глава 7. Повторное использование классов............169

Синтаксис композиции...........................170

Синтаксис наследования..........................172

Делегирование...............................176

Сочетание композиции и наследования...................178

Композиция в сравнении с наследованием.................184

protected..................................185

Восходящее преобразование типов.....................186

Ключевое слово final............................188

Инициализация и загрузка классов.....................195

Резюме...................................197

Глава 8. Полиморфизм......................198

Снова о восходящем преобразовании. . . >................199

Особенности................................201

Конструкторы и полиморфизм.......................208

Ковариантность возвращаемых типов...................216

Разработка с наследованием........................217

Резюме...................................220

Глава 9. Интерфейсы.......................221

Абстрактные классы и методы.......................221

Интерфейсы................................224

Отделение интерфейса от реализации...................227

Расширение интерфейса через наследование...............233

Интерфейсы как средство адаптации....................236

Вложенные интерфейсы..........................239

Интерфейсы и фабрики...........................242

Резюме...................................244

Глава 10. Внутренние классы...................245

Создание внутренних классов.......................245

Связь с внешним классом..........................246

Конструкции .this и .new..........................248

Внутренние классы и восходящее