русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массив объектов одного класса


Дата добавления: 2015-08-14; просмотров: 631; Нарушение авторских прав


Механизм формирования массива объектов и работы с ним в целом идентичен массиву значимых типов. Принципиальное отличие массива объектов от массива значимых типов заключается в том, что объект определенного класса представляет собой ссылку, и, следовательно, массив объектов хранит не собственно объекты, а ссылки.

 

Следствие:

Объект, на который указывает элемент массива, должен быть созданным явным образом с использованием операции new.

Массив значимых типовМассив объектов

int[] a; Тип[] b;

a=new int[2]; b=new Тип [2];

 

a[0]= 15;

a[1]= 25;

 
 

 

 


Объект создаем в явном виде: b[0]=new Тип();

b[1]= new Тип();

 

В каждом классе по умолчанию определен конструктор без параметров. При создании объекта вызывается конструктор, в задачу которого входит начальная установка полей объектов: поля значимого типа – 0, поля ссылочного типа – null.

 

Пример:

Определить класс «Студент» с полями: фамилия, Номер зачетной книжки, оценки за последнюю сессию и методом вывода данных о студенте на экран.

class Студент

{

public string Фам;

public int Зач;

public int[] Оц;

 

public void Показать()

{

int i;

Console.Write(Фам + Зач);

for (i = 0; i < Оц.Length; i++)

Console.Write(Оц[i]);

Console.WriteLine();

}

}

 

Создадим объект класса Студент:

 

Студент ст;

ст = new Студент();

 

Фам Зач Оц

«» 0 0

 

Конструктор может быть переопределен, в этом случае конструтор по умолчанию становится недоступным. Если есть необходимость в конструкторе без параметров, конструктор должен быть определен в явном виде.

 

Как правило, с помощью конструктора задаются начальные значения полей, эти значения могут быть приняты за счет параметров конструктора. В качестве параметра конструктора может быть выбран объект того же типа – конструктор копированияю Его задача – снять копию полей принятого объекта.



 

Различают два вида конструкторов копирования:

1. Поверхностное копирование (с полей значений снимается копия значений, с полей ссылок – копия ссылок)

2. Конструктор полного копирования (с полей значений снимается копия значений, для полей ссылок создается объект и в него копируются данные, на которые указывает ссылочное поле оригинала)

 

Конструктор с параметрами

 

public Студент (string Фам, int зач, int[] оц)

{ this.Фам = Фам; //this – ссылка на активный объект

this.Зач=Зач;

this.Оц=Оц;

}

Конструктор поверхностного копирования

 

public Студент (Студент ст)

{ Фам = ст.Фам;

Зач = ст.Зач;

Оц= ст.Оц;

}

Основная программа

 
 


Студент ст1; Студент ст2;

int[] Оц;

Оц=new int[]{10,10};

ст1=new Студент («Петров», 777, Оц);

ст2=new Студент (ст1);

 

 

При изменении массива оценок изменятся данные и в объекте ст1, и в объекте ст2.

 

Конструктор полного копирования

 

public Студент (string Фам, int зач, int[] оц)

{ this.Фам = Фам;

this.Зач=Зач;

this.Оц=new int[Оц.Length];

Array.Copy(Оц,0,this. Оц,0, Оц.Length);

}

 

public Студент (Студент ст)

{ Фам = ст.Фам;

Зач = ст.Зач;

Оц= new int[Оц.Length];

Array.Copy(Оц,0,this. Оц,0, Оц.Length);

}

 

 

У каждого объекта при копировании создается свой собственный массив оценок.

 



<== предыдущая лекция | следующая лекция ==>
МАССИВЫ ОБЪЕКТОВ СОБСТВЕННЫХ КЛАССОВ | Массив объектов разных типов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.