Главная » Просмотр файлов » К. Арнольд, Д. Гослинг - Язык программирования Java

К. Арнольд, Д. Гослинг - Язык программирования Java (1160779), страница 7

Файл №1160779 К. Арнольд, Д. Гослинг - Язык программирования Java (К. Арнольд, Д. Гослинг - Язык программирования Java) 7 страницаК. Арнольд, Д. Гослинг - Язык программирования Java (1160779) страница 72019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

Методы, находящиеся дальше в стеке выполнения, могут перехватить новое исключение и должным образом прореагировать на него.Если выполнение метода может привести к возникновению проверяемых исключений, последние должны быть объявлены после ключевогослова throws, как показано на примере метода averageOf. Если не считать исключений RuntimeException и Error, а также подклассов этих типовисключений, которые могут возбуждаться в любом месте программы, метод возбуждает лишь объявленные в нем исключения — как прямо,посредством оператора throw, так и косвенно, вызовом других методов, возбуждающих исключения.Объявление исключений, которые могут возбуждаться в методе, позволяет компилятору убедиться, что метод возбуждает только этиисключения и никакие другие. Подобная проверка предотвращает ошибки в тех случаях, когда метод должен обрабатывать исключения отдругих методов, однако не делает этого.

Кроме того, метод, вызывающий ваш метод, может быть уверен, что это не приведет к возникновениюнеожиданных исключений. Именно поэтому исключения, которые должны быть объявлены после ключевого слова throws, называютсяпроверяемыми исключениями. Исключения, являющиеся расширениями RuntimeException и Error, не нуждаются в объявлении и проверке; ониназываются непроверяемыми исключениями.Упражнение 1.14Отредактируйте исключение IllegalAverageException так, чтобы в нем содержался массив и индексы и при перехвате этого исключения можнобыло узнать подробности ошибки.1.13.

ПакетыКонфликты имен становятся источником серьезных проблем при разработке повторно используемого кода. Как бы тщательно вы ни подбиралиимена для своих классов и методов, кто-нибудь может использовать это же имя для других целей. При использовании простых названийпроблема лишь усугубляется — такие имена с большей вероятностью будут задействованы кем-либо еще, кто также захочет пользоватьсяпростыми словами. Такие имена, как set, get, clear и т. д., встречаются очень часто, и конфликты при их использовании оказываются практическинеизбежными.Во многих языках программирования предлагается стандартное решение — использование “префикса пакета” перед каждым именем класса,типа, глобальной функции и так далее.

Соглашения о префиксах создают контекст имен (naming context), который предотвращает конфликтыимен одного пакета с именами другого. Обычно такие префиксы имеют длину в несколько символов и являются сокращением названия пакета —например, Xt для “X Toolkit” или WIN32 для 32-разрядного Windows API.Если программа состоит всего из нескольких пакетов, вероятность конфликтов префиксов невелика. Однако, поскольку префиксы являютсясокращениями, при увеличении числа пакетов вероятность конфликта имен повышается.В Java принято более формальное понятие пакета, в котором типы и субпакеты выступают в качестве членов. Пакеты являются именованными имогут импортироваться. Имена пакетов имеют иерархическую структуру, их компоненты разделяются точками.

При использовании компонентапакета необходимо либо ввести его полное имя, либо импортировать пакет — целиком или частично. Иерархическая структура имен пакетовпозволяет работать с более длинными именами. Кроме того, это дает возможность избежать конфликтов имен — если в двух пакетах имеютсяклассы с одинаковыми именами, можно применить для их вызова форму имени, в которую включается имя пакета.Приведем пример метода, в котором полные имена используются для вывода текущей даты и времени с помощью вспомогательного класса Javaс именем Date (о котором рассказано в главе 12):class Date1 {public static void main(String[] args) {java.util.Date now = new java.util.Date();System.out.println(now);}}Теперь сравните этот пример с другим, в котором для объявления типа Date используется ключевое слово import:import java.util.Date;class Date2 {public static void main(String[] args) {Date now = new Date();System.out.println(now);}}Пакеты Java не до конца разрешают проблему конфликтов имен.

Два различных проекта могут присвоить своим пакетам одинаковые имена. Этапроблема решается только за счет использования общепринятых соглашений об именах. По наиболее распространенному из таких соглашенийв качестве префикса имени пакета используется перевернутое имя домена организации в Internet. Например, если фирма Acme Corporationсодержит в Internet домен с именем acme.com, то разработанные ей пакеты будут иметь имена типа COM.acme.package.Точки, разделяющие компоненты имени пакета, иногда могут привести к недоразумениям, поскольку те же самые точки используются привызове методов и доступе к полям в ссылках на объекты.

Возникает вопрос — что же именно импортируется? Новички часто пытаютсяимпортировать объект System.out, чтобы не вводить его имя перед каждым вызовом println. Такой вариант не проходит, поскольку Systemявляется классом, а out — его статическим полем, тип которого поддерживается методом println.С другой стороны, java.util является пакетом, так что допускается импортирование java.util.Date (или java.util.*, если вы хотите импортировать всесодержимое пакета).

Если у вас возникают проблемы с импортированием чего-либо, остановитесь и убедитесь в том, что вы импортируете тип.Классы Java всегда объединяются в пакеты. Имя пакета задается в начале файла:package com.sun.games;class Card{// ...}// ...Если имя пакета не было указано в объявлении package, класс становится частью безымянного пакета. Хотя это вполне подходит дляприложения (или аплета), которое используется отдельно от другого кода, все классы, которые предназначаются для использования вбиблиотеках, должны включаться в именованные пакеты.1.14.

Инфраструктура JavaЯзык Java разработан так, чтобы обеспечивать максимальную переносимость. Многие аспекты Java определяются сразу для всех возможныхреализаций. Например, тип int всегда должен представлять собой 32-разрядное целое со знаком с дополнением по модулю 2. Во многих языкахпрограммирования точные определения типов являются уделом конкретной реализации; на уровне языка даются лишь общие гарантии, такиекак минимальный диапазон чисел данного типа или возможность системного запроса, позволяющего определить диапазон на даннойплатформе.В языке Java такие требования продвинуты вплоть до уровня машинного языка, на который транслируется текст программ. Исходный текстпрограммы на Java компилируется в байт-код, выполняемый на виртуальной машине Java.

Байт-код является универсальным языком, и именноон интерпретируется виртуальной машиной в каждой системе, поддерживающей Java. /Разумеется, виртуальная машина Java может бытьреализована и на аппаратном уровне - то есть с использованием специализированных микросхем. Это никак не влияет на переносимость байткода и является всего лишь одним из видов реализации виртуальной машины. - Примеч. перев/Виртуальная машина присваивает каждому приложению собственный контекст времени выполнения (runtime), который одновременноизолирует приложения друг от друга и обеспечивает безопасность работы. Менеджер безопасности каждого контекста времени выполненияопределяет, какие возможности доступны данному приложению. Например, менеджер безопасности может запретить приложению чтение илизапись на локальный диск или ограничить сетевые соединения строго определенными компьютерами.В совокупности все эти средства делают язык Java полностью платформонезависимым и предоставляют схему безопасности для выполненияпереданного по сети кода на различных уровнях доверия (trust levels).

Исходный текст Java, скомпилированный в байт-код Java, можетвыполняться на любом компьютере, где имеется виртуальная машина Java. Код может выполняться на соответствующем уровне защиты, чтобыпредотвратить случайное или злонамеренное повреждение системы. Уровень доверия регулируется в зависимости от источника байт-кода —байт-код на локальном диске или в защищенной сети пользуется большим доверием, чем байт-код, полученный с удаленного компьютера,неизвестно даже где расположенного.1.15. ПрочееJava содержит ряд других возможностей, которые кратко упоминаются здесь и рассматриваются в следующих главах:●●●●Потоки: Java обладает встроенной поддержкой потоков для создания многопоточных приложений.

Для синхронизации параллельногодоступа к объектам и данным класса используется блокировка на уровне объектов и на уровне классов. Подробности приведены вглаве 9.Ввод/вывод: Java содержит пакет java.io, предназначенный для выполнения разнообразных операций ввода/вывода. Конкретныевозможности ввода/вывода описаны в главе 11.Классы общего назначения: в состав Java входят классы, представляющие многие примитивные типы данных (такие, как Integer, Double иBoolean), а также класс Class для работы с различными типами классов. Программирование с использованием типов рассматривается вглаве 13.Вспомогательные классы и интерфейсы: Java содержит пакет java.util со множеством полезных классов — таких, как BitSet, Vector, Stack иDate. Более подробно о вспомогательных классах рассказывается в главе 12.Содержание | Далее© 1997-2002 Издательский дом "Питер".

Авторские права охраняются.Предназначено только для частного использования!Воспроизведение материалов или частей данной книги в любом виде без письменного разрешения Издательского дома "Питер" запрещено!Глава 8СТРОКИЧто толку в хорошей цитате, если ее нельзя изменить?Доктор Who, The Two DoctorsСтроки в Java являются стандартными объектами со встроенной языковой поддержкой. Нам уже встречалось множество примеров того, какстроковые объекты создаются на основе литералов; кроме того, мы видели, как операторы + и += применяются для конкатенации и созданияновых строк.

Характеристики

Тип файла
PDF-файл
Размер
1,1 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее