- •Курсовая работа
- •Пояснительная записка
- •Содержание
- •Задание
- •Структурное описание разработки
- •Функциональное описание
- •Класс tList
- •Класс BigInt
- •Класс Elm
- •Класс window
- •Класс MainClass
- •Интерфейс object
- •Приложение Класс MainClass
- •Класс window
- •Класс tList
- •Класс Elm
- •Класс BigInt
- •Интерфейс object
Функциональное описание
В проекте созданы следующие классы и интерфейсы:
TList;
BigInt;
Elm;
Window;
MainClass;
MainWindow;
Object.
Рассмотрим каждый класс подробнее.
Класс tList
Данный класс наследует интерфейс java.io.Serializable, это говорит о том, что данный класс может быть сериализован. Во всех методах данного класса доступ к объекту осуществляется прямым обходом списка, т.е. начиная с заголовка и заканчивая необходимым объектом. Это реализует следующий цикл:
for(int i=1;p!=head && i<index;p=p.next,i++);
В этом классе содержатся следующие переменные:
elm head – заголовок списка;
Для инициализации внутренних данных доступен конструктор.
Конструктор, создающий пустой список.
//-------------------------------------------
public Tlist()
{
head=null;
}
//--------------------------------------------
В классе содержатся следующие методы:
void insert_numb(int N,object val)
Этот метод вставляет объект в список по логическому номеру.
object val – объект для вставки
int N – логический номер, по которому вставляется объект.
void del_numb(int N)
Метод удаляет объект из списка, который находится по введенному логическому номеру.
int find_max()
Метод находит максимальный объект в списке и возвращает его логический номер.
int find_min()
Метод находит минимальный объект в списке и возвращает его логический номер.
void destroy()
Метод удаляет все объекты из списка и тем самым «уничтожает» сам себя.
int size()
Метод возвращает количество объектов в списке, т.е. размер списка.
public object Get_obj(int index)
Метод возвращает объект по логическому номеру.
public void BLoad_list(String fn) throws Exception
Метод загружает список из файлового потока.
//----------------------------------------------------------------------
public void BLoad_list(String fn) throws Exception
{
FileInputStream F = new FileInputStream(fn);
ObjectInputStream ois = new ObjectInputStream(F);
Object objRead = ois.readObject();
Tlist tmp=(Tlist)objRead;
head = tmp.head;
F.close();
}//-----------------------------------------------------------------------
Метод интересен тем, что для загрузки из файлового потока используем сериализацию. Это процесс превращения любого класса в последовательность байтов, при этом процессом руководит Java Machine. Опишем данный метод поподробнее.
Вначале создаем файловый поток для файла с именем fn, затем создаем поток, отвечающий за сериализацию (переменная ois), затем читаем из этого потока объект класса Object (это базовый класс Java). Затем приводим его к типу Tlist. Вследствие этого мы получаем копию очереди и затем копируем данные из копии в текущую очередь. После этих действий закрываем файловый поток.
public void BSave_list(String fn) throws Exception
Метод сохраняет список в файловый поток.
//-----------------------------------------------------------------------
public void BSave_list(String fn) throws Exception
{
FileOutputStream F=new FileOutputStream(fn);
Object objSave = this;
ObjectOutputStream oos = new ObjectOutputStream(F);
oos.writeObject(objSave);
F.close();
}//-----------------------------------------------------------------------
В этом методе также используется сериализация. Вначале приводим текущий объект к типу класса Object, затем создаем поток, который отвечает за сериализацию (переменная oos) и далее сохраняем в этот поток объект класса Object.