Главная » Статьи для тега "public"

Hashtable

Добавлено Дата: 8 June, 2011 категория: Java

 

   Класс , реализующий методы абстрактного типа Dictionary, подобен классу HashMap. последней редакции реализует и интерфейс Map. Все методы , в отличие от HashMap, синхронизированы. Помимо методов, унаследованных от Dictionary и Map, класс содержит конструкторы и методы, перечисленные ниже.

Читать »

Управление доступом

Добавлено Дата: 8 June, 2011 категория: Java

Вообразите ситуацию, когда любой член любого класса или объекта способен напрямую обращаться к структурным элементам иного произвольно взятого класса (объекта). Вероятно, не стоит и доказывать, что восприятие, отладка и поддержка такого программного кода превратятся в поистине невыполнимую задачу. В подобном случае контракты, которые могут быть предусмотрены классами, не принимаются во внимание – любой фрагмент кода наделен правом беспрепятственного и бесконтрольного обращения ко всем полям без исключения. Одно из неоспоримых преимуществ объектно-ориентированного подхода к программированию состоит в поддержке концепции uнкаnсуляции, или сокрытия данных. Чтобы воплотить ее в жизнь, необходимы средства языка, позволяющие регламентировать, кто обладает доступом к членам класса или интерфейса либо к Классу или интерфейсу как таковому. Возможность инкапсуляции реализуется на Практике с помощью модификаторов доступа, применяемых по отношению К Классам и интерфейсам в целом и их членам в частности.

Читать »

Переменные в интерфейсах, допускающие изменение

Добавлено Дата: 6 June, 2011 категория: Java

 

В разделе 4.2.1 на странице 128 мы уже упоминали о том, что если при проектировании интерфейса необходимо использовать поля, допускающие изменение значений, эта задача может быть легко решена в рамках модели внутренних классов. Объявим внутренний класс, поля которого предназначены для хранения изменяемых значений, а методы обеспечивают доступ к этим полям, и определим ссылку на объект класса:

Читать »

BitSet

Добавлено Дата: 6 June, 2011 категория: Java

 

   Класс поддерживает средства создания битовых векторов (bit vector), допускающих динамический рост. Структура данных объекта — это множество (set) из 2^31 битов, способных содержать значение true или false и изначально инициализируемых значением false. Биты индексируются от 0 до Integer .MAX_VALUE, и их значения могут быть заданы, считаны или сброшены по отдельности. Объект для хранения данных использует последовательность битов необходимого и достаточного объема — ее длина определяется наибольшим значением индекса установленного бита, а все биты с большими индексами считаются равными false.

Читать »

Блоки инициализации Java

Добавлено Дата: 5 June, 2011 категория: Java

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

Читать »

Байтовые потоки ByteArray в Java

Добавлено Дата: 4 June, 2011 категория: Java

 

  Массивы байтов, размещенные в оперативной памяти, могут выступать в роли источника или получателя данных при работе с потоками семейства ByteArray.

  Объект класса ByteArraylnputStream использует массив типа byte в качестве источника данных. В составе класса предусмотрены два конструктора, описанные ниже.

Читать »

Работа с интерфейсами Java

Добавлено Дата: 4 June, 2011 категория: Java

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

Первое решение, которое надлежит принять, относится к вопросу, целесообразно ли факт принадлежности атрибутов объекту отображать в структуре типа, Которому объект принадлежит. Объект сам по себе способен, если вы того пожелаете, содержать набор атрибутов, открытый для доступа. Вы также вправе оговорить, что способность хранения атрибутов в объекте – это "заслуга" соответствующего типа, которая должна быть зафиксирована в иерархии типов. Оба Подхода вполне правомерны. Мы, однако, полагаем, что стратегия, предусматривающая "объявление" способности к хранению атрибутов на уровне типа, окажется более продуктивной. Ниже мы создадим общий тип Attributed, предна3liаченный для получения объектов, которые могут быть помечены атрибутами.

Читать »

Класс Process

Добавлено Дата: 4 June, 2011 категория: Java

 

   Каждый из методов Runtime .exec возвращает объект Process, отвечающий вновь созданному дочернему процессу. Объект предоставляет методы управления процессом, относящиеся к двум категориям. Во-первых, объект Process позволяет получать ссылки на соответствующие дочернему процессу объекты потоков ввода (input), вывода (output) данных и сообщений об ошибках (error).

Читать »

LinkedList

Добавлено Дата: 4 June, 2011 категория: Java

 

   Класс обеспечивает реализацию модели двусвязного списка (doubly-linked list). Характеристики производительности операций над данными объекта во многом противоположны тем, которые присущи операциям, выполняемым объектом ArrayList: трудоемкость добавления элемента в конец списка описывается, правда, той же функцией, 0(1), но все остальные методы ведут себя по-иному — добавление элемента в середину списка или удаление его оценивается функцией О(1) (поскольку выполнять копирование не требуется), а для получения объекта, расположенного на заданной позиции i, придется осуществить O(i) элементарных операций, так как перемещение к объекту по списку сопряжено с просмотром всех предыдущих объектов, начиная с первого.

Читать »

Расширенный класс Java

Добавлено Дата: 3 June, 2011 категория: Java

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

Читать »

Массивы Java и пример программы, моделирующей игру в карты

Добавлено Дата: 3 June, 2011 категория: Java

 

Простые переменные, позволяющие хранить единственное значение, безусловно, Полезны, но их возможностей для решения большинства практических задач явно не :остаточно. Например, программируя карточную игру, вы наверняка захотите одновременно хранить несколько объектов типа card (карта) и оперировать ими как единым целым. Вот здесь вам на выручку поспешат массивы (aгrays).

Читать »

Механизмы ожидания и оповещения Java

Добавлено Дата: 2 June, 2011 категория: Java

 

Существуют три формы методов ожидания и две – оповещения. Все они реализованы в составе класса Object и снабжены модификатором final, препятствующим их переопределению в производных классах.

public final void wait(long timeout) throws InterruptedException Текущий поток ожидает наступления одного из четырех событий: вызван метод notify объекта и потоку следует продолжить работу; вызван метод notifyALL объекта; истек промежуток времени, заданный параметром timeout; поток вызвал собственный метод interrupt. Значение timeout выражается в миллисекундах. Если оно равно нулю, метод будет выполняться неопределенное время до получения уведомления, посланного от notify или notifyALL. На время цикла ожидания блокировка объекта освобождается и автоматически устанавливается непосредственно перед завершением выполнения wait, независимо от того, как и почему ожидание прекращается. Если работа wait завершается в результате вызова метода interrupt, выбрасывается исключение типа InterruptedException.

Читать »

StreamTokenizer в Java

Добавлено Дата: 31 May, 2011 категория: Java

 

   Задачи лексического анализа потока данных относятся к числу широко известных и традиционных, и в составе пакета Java.io представлен класс StreamTokenizer, позволяющий решать некоторые из них. Поток разбивается на лексемы с помощью объекта StreamTokenizer, конструктор которого принимает в качестве параметра объект типа Reader, выполняющий функцию источника данных; объект StreamTokenizer действует в соответствии с заданными параметрами сканирования данных. На каждой итерации цикла сканирования вызывается метод nextToken, который возвращает очередную считанную из потока лексему и информацию о ее типе, присваивая эти данные полям объект StreamTokenizer.

Читать »

Строки и массивы значений char Java

Добавлено Дата: 31 May, 2011 категория: Java

Содержимое объекта String может быть отображено с помощью массива элементов типа char и наоборот. Достаточно часто возникает задача построения массива значений char, а на его основе – объекта типа String. В тех ситуациях, когда применение объектов класса StringBuffer (обратитесь к разделу 9.8 на странице 237), допускающих изменение строковых данных, нецелесообразно или неудобно, можно обратиться к нескольким методам и конструкторам класса Stri ng, помогающим преобразовать объект типа String в массив значений char либо, наоборот, массив char – в объект String.

Читать »

Reader в Java

Добавлено Дата: 31 May, 2011 категория: Java

 

  Абстрактный класс Reader обеспечивает поддержку символьного потока чтения аналогично тому, как это делает InputStream, реализующий модель байтового потока ввода, и методы Reader схожи с теми, которые объявлены в составе InputStream.

Читать »