русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Масиви об’єктів


Дата додавання: 2015-01-08; переглядів: 920.


 

При створенні масиву, що складається з елементів посилального типу, пам'ять виділяється тільки під посилання на елементи, а самі елементи необхідно розмістити в хіпові явним чином. Як приклад створимо масив з об'єктів деякого класу Monster:

 

 

using System;

namespace ConsoleApplication1

{

class Monster

{

 

string name; // закриті поля

int health, ammo;

 

public Monster()

{

this.health = 100;

this.ammo = 100;

this.name = "Noname";

}

public Monster(string name)

: this()

{

this.name = name;

}

public Monster(int health, int ammo, string name)

{

this.health = health;

this.ammo = ammo;

this.name = name;

}

public int Health

{

get

{

return health;

}

set

{

if (value > 0) health = value;

else health = 0;

}

}

public int Ammo

{

get

{

return ammo;

}

set

{

if (value > 0) ammo = value;

else

ammo = 0;

}

}

public string Name

{

get

{

return name;

}

}

public void Passport()

{

Console.WriteLine("Monster {0} \t health = {1} ammo = {2}",

name, health, ammo);

}

}

class Classl

{

static void Main()

{

Random rnd = new Random();

const int n = 5;

Monster[] stado = new Monster[n]; // 1

for ( int i = 0; i < n; i ++) // 2

{

stado[i ] = new Monster( rnd.Next( 1, 100 ),

rnd.Next( 1, 200 ) , "Crazy" + i .ToString() );

}

foreach ( Monster x in stado ) x.Passport(); // 3

}

}

}

Результат роботи програми:

 

Monster Crazy0 health = ammo =
Monster Crazyl health = ammo =
Monster Crazy2 health = ammo =
Monster Crazy3 health = ammo =
Monster Crazy4 health = ammo =

 

У операторові 1 виділяється п'ять елементів пам'яті під посилання на екземпляри класу Monster. Ці посилання заповнюються значенням null. У циклі 2 створюються п'ять об'єктів. Цикл 3 демонструє зручність застосування оператора foreach для роботи з масивом.

 


<== попередня лекція | наступна лекція ==>
Оператор foreach | Символи


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн