Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по лабораторным работам.doc
Скачиваний:
1
Добавлен:
19.11.2019
Размер:
517.63 Кб
Скачать
  1. Подготовка к выполнению работы. Подготовка производится в часы самостоятельной работы студентов. Она включает:

  • изучение теоретического материала темы по конспекту лекций и литературе;

  • ознакомление с содержанием работы по настоящему методическому пособию.

2. Создание нового проекта и подготовка основных классов.

3. Описание свойств и методов классов.

4. Инициализация объекта справочника и пример клиентского кода.

5. Запуск программы и устранение ошибок.

3.2 Создание нового проекта и подготовка основных классов

Создайте новый проект (Java Application) с названием TelephoneDirectory. Переименуйте класс TelephoneDirectory в Example.

Создайте три новых класса Address, Abonent и TelephoneDirectory. Для создания класса вызовите выпадающее меню на необходимом пакете проекта. В выпадающем меню выберите “New” -> “Java Class…” (рисунок 3.1).

Рисунок 3.1 – Создание нового класса

    1. Описание свойств и методов классов

Рисунок 3.2 – диаграмма классов UML

В классе Address объявите следующий набор свойств объекта:

  • улица (streetName);

  • номер дома (homeNumber);

  • номер квартиры (apartmentNumber).

Объявите и инициализируйте конструктор объекта адреса с данными тремя аргументами. Присвойте значения аргументов свойствам объекта. Т.к. имена аргументов будут совпадать с именами свойств и для исключения перекрытия свойств аргументами, используйте ключевое слово this для свойств объекта (например, this.street).

В классе Abonent объявите следующий набор свойств объекта:

  • фамилия (family);

  • имя (name);

  • отчество (patronymic);

  • адрес (address);

  • телефонный номер (telephoneNumber).

В том же классе создайте конструктор объекта с таким же набором аргументов, как и его свойства. Присвойте значения аргументов свойствам объекта.

Создайте методы для чтения свойств объекта (get-методы).

В классе TelephoneDirectory объявите свойство коллекции (abonents), в которой будут храниться все абонента телефонного справочника. Коллекцию используйте класса ArrayList, для хранения конкретного типа Abonent (ArrayList<Abonent>). Класс ArrayList может хранить объекты любого типа, но также является типизированным, т.е. ему можно жестко задать тип для предотвращения ошибочного попадания иного типа.

Объявите и опишите конструктор объекта телефонного справочника. Данный конструктор не имеет аргументов и содержит в своем теле инициализацию свойства abonents объектом коллекции ArrayList (abonents = new ArrayList<Abonent>()).

Создайте методы для добавления и удаления абонентов из справочника (addAbonent(Abonent abonent) и removeAbonent(Abonent abonent)). Для добавления абонента в коллекцию используйте метод add (abonents.add(abonent)). Для удаления абонента из коллекции используйте метод remove (abonents.remove(abonent)). Создайте метод для чтения всех абонентов справочника (ArrayList<Abonent> getAbonents()). И методы для поиска абонента по фамилии (ArrayList<Abonent> getAbonents(String family)) и номеру телефона (Abonent getAbonent(int telephoneNumber)).

    1. Инициализация объекта справочника и пример клиентского кода

Для тестирования написанного кода справочника опишите пример клиентского кода (класс Example). В методе main объявите переменную телефонного справочника (например telephoneDirectoryGroupStudents или tdGroupStudents) и инициализируйте ее новым объектом. Создайте новый объект Абонента (например, new Abonent(“Петров”, “Иван”, “Васильевич”, new Adderss(“Дедюкина”, 20, 205), 2281834)) и передайте его в метод addAbonent телефонного справочника. Создайте еще пару других абонентов.

Вызовите метод, возвращающий всех абонентов телефонного справочника, присвойте ссылку полученный объект новой переменной allAbonents того-же типа.

Создайте конструкцию цикла for (удобнее всего использовать конструкцию for-each) для чтения всех абонентов поочередно. В теле цикла выведите на консоль все свойства абонента (System.out.println(abonent.getFamily + “ ” + abonent.getName() + “ “ + …)).

Реализуйте поиск абонентов по фамилии и номеру телефона. Результат выведите на консоль.