БИБЛИОТЕКА ПРОГРАММИСТА
Брюс Эккель
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