Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Задание 4. Массивы Объектов.

Задание 1. Класс Array | Задание 2. Массивы как коллекции. Статические методы класса Array. | Задание 6. Описание класса массива |


Читайте также:
  1. I. Задание для самостоятельной работы
  2. I.Задание для самостоятельной работы
  3. III. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
  4. RAID-массивы и матрицы
  5. Блок 2, задание № 3
  6. Блок 2, задание № 4
  7. Выделение свойств объектов.

о всех рассмотренных примерах нам встречались массивы, элементы которых имели только простые значимые типы. В реальных программах массивы объектов и других ссылочных типов встречаются не менее часто. Каков бы ни был тип элементов, большой разницы при работе с массивами нет. Но один важный нюанс все же есть, и его стоит отметить. Он связан с инициализацией элементов по умолчанию. Уже говорилось о том, что компилятор не следит за инициализацией элементов массива и доверяет инициализации, выполненной конструктором массива по умолчанию. Но для массивов ссылочного типа инициализация по умолчанию присваивает ссылкам значение Null. Это означает, что создаются только ссылки, но не сами объекты. По этой причине, пока не будет проведена настоящая инициализация с созданием объектов и заданием ссылок на конкретные объекты, работать с массивом ссылочного типа будет невозможно.

 

ассмотрим детали этой проблемы на примере. Определим достаточно простой и интуитивно понятный класс, названный Student свойства которого задают имя студента и его баллы, а методы позволяют установить количество полученных баллов и распечатать его свойства.

  1. Создайте новое консольное приложение;
  2. Определите новый класс Student с двумя закрытыми полями полями: name и sumb;
  3. Объявите статическое или динамическое поле rnd и инициализируйте его объектом класса Random;
  4. Напишите открытый метод SetValue, которому передается фамилия студента и который инициализирует соответствующее поле, а так же с помощью объекта rnd инициализирует значение набранных баллов случайным числом.
  5. Напишите функцию вывода информации об объекте на консоль, предварительно переопределив метод ToString;
  6. В функции main создайте массив объектов Student из трёх элементов с отложенной инициализацией;
  7. Задайте значения полей элементов данного массива, используя специальную функцию SetValue; Когда будет сгенерировано сообщение об ошибке? Почему?
  8. Для решения указанной проблемы чаще всего используют следующий приём:
    1. В классе Student определите метод InitAr (Метод должен быть статическим, чтобы его можно было вызывать еще до того, как созданы экземпляры класса, поскольку метод предназначен для создания этих самых экземпляров.) Метод имеет следующую сигнатуру:

public static Student[] InitAr(Student[] Stud)

    1. В цикле инициализируются все элементы массива с помощью констуктора по умолчанию Student();
    2. Не забудьте вернуть сам массив!
  1. Вызовите данный метод в функции main и снова попробуйте выполнить шаг №7;
  2. Выведите массив на экран;

 


Дата добавления: 2015-07-11; просмотров: 63 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Задание 3. Класс Object и массивы| Задание 5. Приведение типов массивов.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)