Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 145

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 139 140 141 142 143 144 < 145 > 146 147 148 149 150 151 .. 259 >> Следующая

}
* Нужно также добавить в начало кода класса хтадз строку inport myutilities. *; — Прим. ред.
330
Глава 9. Абстракция и наследование
public boolean lessThan (Sortable secondTag) {
Tags temp = (Tags) secondTag;
І І Переменной temp может Оыть объект Tags или XTags, // поэтому мы получаем соответствующую переменную,
// представляющую собой номер телефона, вызывая метод String secondString = temp.getPhonet); return (phone.compareTo(secondString) < 0);
Ї
public String toString?} {
return "Владелец: n-t-phone+T< животное: м+паіпе;
}
}
Главную программу можно немного настроить. Программа не реализует интерфейс Sortable; все это выполняется класами Tags и XTags. В главной программе нужно лишь вызвать класс sort и его метод *:
Sort.selectionSort (register,index);
> ,,
[1-J П И'Ми|:н1Г}>ИМИ[и>П^
Иыя файлэ с данными
Найдвhd животное no кличів
ugsdai
ч-: - «:>
В
п
ВВОД 8Ы90Д
Систем* Сирок, примятая і саванне Веедите имя файле и кажмті кнопку Тото«ґ Введены ice данные о 6-й животных
Отдел регистрации животы*
Номер хмотногс, кличі* и номер плафона.
0 Владелец. 466693 животное: Fiuft
1 Владелец 466693 жиіотнсі:ава
2 Рите тел ІВ66ЄЗ тап. отделе: 3017884
3 Вивівпел: 5874583 тал. отдел»: 3Q17894
4 Kiris тіл: 222546 т*л. отдала: 4014999
5 Владелец; 2225*С жміотчов: TTtCft
Данные, отсортированные по номерам телефонов отделов регистрации или телефонов владельцев D Кагізтвл; 222546 тал. отдвпа 4014999
1 Владелец: 722546 животное: Tilth
2 Puma тал: 4666ВЗ тел. отдала: 3017894
3 Владелец 46&683 животное: FlLfliy
4 Владелец; 486&83 животное: 8е»
5 Buster тел: 5674563 тал. отдела: 3017894
шШШМ
Рис. 9.5. Донные, отсортировонные по телефонным номером отделов или владельцев животных
9 Для этого вам нужно в начало программы поместить оператор import myutilities ¦ а перед закрывающей скобкой метода showTags вставить следующие строки кода:
display.printing н>;
display, println ("Данные, отсортированные по номером: \ л телефонов отделов регистрации, или ") ;
display - println ("Телефонов владельцев гг)'}
Sort.selectionSort(register,index); for (Int і - 0; і < index; i++)
display .println ji+lp n+register [і]) і — Прим. ред.
Практикум 4. Ветеринарные бирки
331
На рис. 9.5 представлен результат работы программы после сортировки данных по телефонным номерам. Чтобы показать, как происходит сортировка, мы изменили вид каждой выводимой строки, В окне программы ;мы видим, что номера телефонов на бирках животных, которые принадлежат одному хозяину и и меют клички Флаффи, Сез и Пум, сортируются отдельно, потому что Пум имеет бирку XTags, Данный объект сортируется по телефонному номеру отдела регистрации. Поскольку переменная vets Phone рассматриваемого объекта имеет наименьшее значение, данные с этой бирки выводятся первыми.
9.6. Сериализация________________________________________________________
Внимательный читатель очевидно заметил, что и в программе иКофейный магазин Нельсона”, и в программе “Ветеринарные бирки” мы прибегали к сохранению данных в памяти. Данные вводились из текстового файла, после чего их можно было обновлять (как в примере о продажах кофе) или обрабатывать во время выполнения запроса (как при регистрации бирок). Однако не было средств, позволяющих сохранять данные между запусками программ. Поэтому обе программы до некоторой степени нереальны. Очевидно, что надлежит сохранять данные и в процессе выполнения программы (на случай сбоя), и во время ее завершения (чтобы не приходилось начинать с “нуля”), В Java применяется специальная технология сохранения данных, именуемая сериализацией.
Сериализация заключается в преобразовании объекта в простой поток байтов таким образом, чтобы впоследствии он мог быть корректно восстановлен. Такой поток байтов мы можем направить в качестве вывода в файл и впоследствии считать обратно* Сериализации обычно подвергается композиция из нескольких объектов, таких как массив, хеш-таблица и связный список. Java может справиться с любой из структур, которые мы изучили к этому времени.
Важно, чтобы при сериализации были учтены следующие моменты. Объект, подлежащий сериализации, должен быть объявлен таким, который использует интерфейс Serializable. Поскольку этот интерфейс уже реализован в суперклассе Object, методы, которые он содержит, не обязательно должны использоваться: в объявлении просто указывается, что разрешено применять эти методы по отношению к данному объекту. Эти методы называются writeObjeet и readobject. Они принимают и возвращают объекты Object и объявлены в классах ObjectOutput-stream и objectinputstreajn соответственно. Ниже показаны синтаксис и семантика сериализации:
// Сохраняет вывод,
QbjectQutputStream outstrea/n -
nmv QbjectOutputStream (GutputStreamObject) ; сшелtream.writeObject(t^eObject)? outstream.close fЇ;
// Вводит сохраненные данные.
ObjectInputStream ins bream m
new QbleCtlriDiltStr^Am t і n П! T_? g±- L,
theObject - (Serializable) Inscream.readObject(); instream, close () ?
Предыдущая << 1 .. 139 140 141 142 143 144 < 145 > 146 147 148 149 150 151 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.