Лабораторная работа 3: Коллекции объектов
Описание
Задание: преобразование структуры программы для представления информации о наборе объектов. Расширение программы должно включать обязательные элементы объявления и создания коллекции для хранения набора объектов и добавление в коллекцию нескольких объектов. Также для каждого элемента коллекции необходимо выполнить обращение к методу объекта.
Рекомендации к выполнению:
Для преобразования программы необходимо выполнить следующие основные изменения:
- в главный класс-предок необходимо добавить переменную коллекцию (ArrayList)
- в конструкторе класса данную переменную необходимо создать (оператор new)
- в процессе добавления элементов необходимо использовать метод add для добавления нового объекта в коллекцию.
Пример:
import java.util.*;public class lab { public static void main (String args[]) { ComKlass klass = new ComKlass(); Computer comp1 = new Computer(); Computer comp2 = new Computer(); klass.AddComputer(comp1); klass.AddComputer(comp2); for(int i=0;i<klass.GetComputerList().size();i++) { ((Computer)klass.GetComputerList().get(i)).GetDataFromKeyBoard(); ((Computer)klass.GetComputerList().get(i)).ShowMousePosition(); } }} class ComKlass { private ArrayList computers; ComKlass() { computers = new ArrayList(); } void AddComputer(Computer c) { computers.add(c); } ArrayList GetComputerList() { return computers }}class Computer { private int id; Mouse mouse; KeyBoard keyboard; Computer() { mouse = new Mouse(); keyboard = new KeyBoard(); } void GetDataFromKeyBoard() { keyboard.GetKey(); } void ShowMousePosition() { mouse.GetPosition(); }}class Mouse { private int x,y; void GetPosition() { System.out.println("Mouse.GetPosition()"); } void SetPosition(int x, int y) { this.x = x; this.y = y; }}class KeyBoard { private char key; void SetKey(char k) { this.key = k; } char GetKey() { System.out.println("KeyBoard.GetKey()");return key; }}В изложенном выше примере для создания компьютерного класса и запуска программы был использован класс lab, имеющий статический метод main. После создания нового экземпляра объекта «компьютер», переменная помещается в коллекцию с помощью вызова метода AddComputer. Внутри коллекции происходит циклический перебор всех ее элементов с явным приведением типа объекта к Computer и вызов методов класса, в методе класса для вывода на экран информации о работе данного элемента структуры выводится строка с текстом имени метода.
СибГУТИ














