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

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

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

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

Результат учитывает время суток, и на него может влиять летнее время — если оноучитывается, то в зависимости от времени года может присутствовать дополнительное смещение часового пояса.public void setYear(int year)Устанавливает значение года. Год должен быть после 1900.public void setMonth(int month)Устанавливает месяц.public void setDate(int date)Устанавливает число месяца.public void setDay(int day)Устанавливает день недели.public void setHours(int hours)Устанавливает час.public void setMinutes(int minutes)Устанавливает минуты.public void setSeconds(int seconds)Устанавливает секунды.public boolean before(Date other)Возвращает true, если дата объекта наступает раньше даты other.public boolean after(Date other)Возвращает true, если дата объекта наступает после даты other.public boolean equals(Object other)Возвращает true, если дата объекта представляет в стандарте UTC ту же дату, что и other.public int hashCode()Вычисляет хеш-код, чтобы объекты Date могли использоваться в качестве ключей в хеш-таблицах.public String toString()Преобразует дату в String, например: “Fri Oct 13 14:33:57 EDT 1995".

/Формат строки совпадает с форматом, используемым в функции ctime всоответствии со стандартом ANSI C./public String toLocaleString()Преобразует дату в String с использованием национального формата. Другими словами, дата будет представлена в виде, принятом влокализованной операционной системе. Например, жители США привыкли видеть месяц перед числом (“June 13"), тогда как в Европе обычноиспользуется обратный порядок (”13 June ").public String toGMTString()Преобразует дату в String с использованием конвенции Internet GMT, в формеd mon yyyy hh:mm:ss GMTгде d — число месяца (одна или две цифры), mon — первые три буквы месяца, yyyy — год из четырех цифр, hh — часы (0–23), mm — минуты, аss — секунды. Информация о местном часовом поясе при этом игнорируется.12.11. Класс RandomОбъекты класса Random предназначены для работы с независимыми последовательностями псевдослучайных чисел.

Если вам нужнапоследовательность типа double и вас не интересует порядок следования чисел, можно воспользоваться методом java.lang.Math.random — онсоздает объект Random при первом вызове и в дальнейшем возвращает псевдослучайные числа из этого объекта. Чтобы иметь больше средствдля контроля за последовательностью (например, чтобы иметь возможность задать стартовое значение), создайте объект Random и получайтечисла от него.public Random()Создает новый генератор случайных чисел. Стартовое значение определяется на основании текущего времени.public Random(long seed)Создает новый генератор случайных чисел с заданным стартовым значением. Два объекта Random, созданные с одинаковым seed, будутпорождать совпадающие последовательности псевдослучайных чисел.public synchronized void setSeed(long seed)Устанавливает стартовое значение генератора случайных чисел равным seed. Метод может быть вызван в любой момент — в результатепроизойдет сброс последовательности и последующее ее порождение на основе стартового значения.public int nextInt()Возвращает псевдослучайное значение типа int, равномерно распределенное между величинами Integer.MIN_VALUE и Integer.MAX_VALUEвключительно.public long nextLong()Возвращает псевдослучайное значение типа long, равномерно распределенное между величинами Long.MIN_VALUE и Long.MAX_VALUEвключительно.public float nextFloat()Возвращает псевдослучайное значение типа float, равномерно распределенное между величинами Float.MIN_VALUE и Float.MAX_VALUEвключительно.public double nextDouble()Возвращает псевдослучайное значение типа double, равномерно распределенное между величинами Double.MIN_VALUE и Double.MAX_VALUEвключительно.public synchronized double nextGaussian()Возвращает псевдослучайное значение типа double, подчиняющееся распределению Гаусса, с математическим ожиданием 0,0 и стандартнымотклонением 1,0.Упражнение 12.7Для известного количества шестигранных кубиков можно вычислить теоретическую вероятность выпадения каждой из возможных сумм.Например, для двух шестигранных кубиков вероятность выпадения семи очков составляет 1/6.

Напишите программу, которая сравниваеттеоретическое распределение очков для известного числа кубиков с экспериментальными данными, полученными в результате многочисленных“бросков”, использующих Random для генерации чисел между 1 и 6. Имеет ли значение выбор метода, генерирующего числа?Упражнение 12.8Напишите программу, которая тестирует метод nextGaussian, отображая распределение для большого количества чисел в виде графика — егороль может играть гистограмма из символов *.12.12.

Класс String TokenizerКласс StringTokenizer делит строку на части, используя для этого символы-разделители. Последовательность лексем, выделенных из строки,фактически представляет собой упорядоченный объект-перечисление, поэтому класс StringTokenizer реализует интерфейс Enumeration. Выможете передавать объекты StringTokenizer методам, которые обрабатывают объекты-перечисления, или воспользоваться методамиEnumeration для проведения итераций.

StringTokenizer также предоставляет ряд методов с более конкретной типизацией. ПеречислениеStringTokenizer не гарантирует фиксации исходного состояния, но это не имеет значения, поскольку объекты String доступны только для чтения.Например, для деления строки на лексемы, отделяемые запятыми и пробелами, может использоваться следующий цикл:String str = "Gone, and forgotten";StringTokenizer tokens = new StringTokenizer(str, " ,");while (tokens.hasMoreTokens())System.out.println(tokens.nextToken());Запятая включена в список разделителей в конструкторе StringTokenizer для того, чтобы анализатор “поглощал” запятые вместе с пробелами,оставляя только слова, которые возвращаются по одному.

Результат работы примера выглядит следующим образом:GoneandforgottenКласс StringTokenizer содержит несколько методов, которые определяют, что считать словом, следует ли отдельно обрабатывать строки и числа,и так далее:public StringTokenizer(String str, String delim, boolean returnTokens)Конструирует объект StringTokenizer для строки str с использованием символов из строки delim в качестве разделителей. Логическое значениеreturnTokens определяет, следует ли возвращать разделители как лексемы или же пропускать их. В первом случае каждый символ-разделительвозвращается отдельно.public StringTokenizer(String str, String delim)Эквивалентен StringTokenizer(str, delim, false), то есть разделители пропускаются.public StringTokenizer(String str)Эквивалентен StringTokenizer(str, “ \t\n\r”), то есть используются стандартные символы-разделители.public boolean HasMoreTokens()Возвращает true, если в строке еще остаются лексемы.public String nextToken()()Возвращает следующую лексему в строке.

Если лексем больше нет, возбуждается исключение NoSuchElementException.public String nextToken(String delim)Заменяет набор символов-разделителей на символы из строки delim и возвращает следующую лексему. Невозможно изменить набор символовразделителей, не получая следующей лексемы.public int countTokens()Возвращает количество лексем, остающихся в строке при использовании текущего набора разделителей.

Оно равно числу возможных вызововnext Token перед тем, как будет возбуждено исключение. Если вам понадобилось узнать количество лексем, то этот метод работает быстреециклического вызова nextToken, поскольку строки-лексемы только подсчитываются, без расходов на конструирование и возврат значения.Два метода класса StringTokenizer, унаследованные от интерфейса Enumeration (hasMoreElements и nextElement), эквивалентны методамhasMoreTokens и nextToken соответственно.Если вам понадобится более мощный механизм для деления строки или другого входного значения на лексемы, обратитесь к разделу “КлассStream Tokenizer”, в котором описывается класс с большими возможностями по части распознавания ввода. Чтобы воспользоваться классомStream Tokenizer для строки, создайте для нее объект StringBufferInputStream. Тем не менее во многих случаях бывает достаточно и простогокласса String Tokenizer.Упражнение 12.9Напишите метод, который получает строку, делит ее на лексемы с использованием стандартных символов-разделителей и возвращает новуюстроку, в которой первая буква каждого слова преобразована в заглавный регистр.Содержание | Далее© 1997-2002 Издательский дом "Питер".

Авторские права охраняются.Предназначено только для частного использования!Воспроизведение материалов или частей данной книги в любом виде без письменного разрешения Издательского дома "Питер" запрещено!Глава 4ИНТЕРФЕЙСЫ“Дирижирование” — это когда вы рисуетесвои “проекты” прямо в воздухе, палочкой или руками,и нарисованное становится “инструкциями” для парней в галстуках, которые в данный момент предпочли быоказаться где-нибудь на рыбалке.Фрэнк ЗаппаОсновной единицей проектирования в Java являются открытые (public) методы, которые могут вызываться для объектов. Интерфейсыпредназначены для объявления типов, состоящих только из абстрактных методов и констант; они позволяют задать для этих методовпроизвольную реализацию. Интерфейс является выражением чистой концепции проектирования, тогда как класс представляет собой смесьпроектирования и конкретной реализации.Методы, входящие в интерфейс, могут быть реализованы в классе так, как сочтет нужным проектировщик класса.

Следовательно, интерфейсыимеют значительно больше возможностей реализации, нежели классы.4.1. Пример интерфейсаВ предыдущей главе мы представили читателю класс Attr и показали, как расширить его для создания специализированных типов объектов сатрибутами. Теперь все, что нам нужно, — научиться связывать атрибуты с объектами. Для этого служат два подхода: композиция и наследование.Вы можете создать в объекте набор определенных атрибутов и предоставить программисту доступ к этому набору.

Второй метод состоит в том,что вы рассматриваете атрибуты объекта как составную часть его типа и включаете их в иерархию класса. Оба подхода вполне допустимы; мыполагаем, что хранение атрибутов в иерархии класса приносит больше пользы. Мы создадим тип Attributed, который может использоваться длянаделения объектов атрибутами посредством закрепления за ними объектов Attr.Однако в Java поддерживается только одиночное наследование (single inheritance) при реализации — это означает, что новый класс можетявляться непосредственным расширением всего одного класса. Если вы создаете класс Attributed, от которого порождаются другие классы, товам либо придется закладывать Attributed в основу всей иерархии, либо программисты окажутся перед выбором: расширять ли им классAttributed или какой-нибудь другой полезный класс.Каждый раз, когда вы создаете полезное средство вроде Attributed, возникает желание включить его в корневой класс Object.

Если бы эторазрешалось, то класс Object вскоре разросся бы настолько, что работать с ним стало бы невозможно.В Java допускается множественное наследование интерфейсов, так что вместо того, чтобы включать возможности класса Attributed в Object, мыоформим его в виде интерфейса. Например, чтобы наделить атрибутами наш класс небесных тел, можно объявить его следующим образом:class AttributedBody extends Bodyimplements AttributedРазумеется, для этого нам понадобится интерфейс Attributed:interface Attributed {void add(Attr newAttr);Attr find(String attrName);Attr remove(String attrName);java.util.Enumeration attrs();}В данном интерфейсе объявляются четыре метода.

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

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

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

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