На этом уроке мы расмотрим еще один пример класса с событием. Класс наш будет представлять из себя игральную кость, в классе будет единственный метод rnd, возвращающий случайное число от 1 до 6. Если этот метод возвратит 6, то сгенерируется событие max.
namespace test
{
//Объявление делегата.public delegate void EventHandler();
//Класс "Игральная кость".class MyDie
{
Random r;
//Объвление события на основе делегата.public event EventHandler max;
//Конструктор.public MyDie()
{
r=new Random();
}
//Объявление метода, в котором вызывается событие.public int rnd()
{
//Случаное число от 1 до 6.int res = r.Next(6)+1;
if(res==6)
{
//Вызываем событие.
max();
}
return res;
}
}
//Класс для тестирования события.class Test
{
//Обработчик для события.public static void z()
{
Console.WriteLine("Вызов обработчика");
}
//Метод main.static void Main(string[] args)
{
//Создаем экземпляр события.
MyDie w=new MyDie();
//Добавление обработчика события.
w.max+=new EventHandler(z);
//Вызов метода, в котором вызывается событие.for(int k=0; k<10; k++)
{
Console.WriteLine("{0}", w.rnd());
}
}
}
}
При запуске нашей программы к классе Test мы создаем новый экземпляр класса MyDie игральной кости, приписываем к событию max класса MyDie обработчик z, и подкидываем кость 10 раз. Если выпадет шестерка, то возникнет событие max и выполнится обработчик для него.
Уроки по Java с самого начала. Основные конструкции языка, классы в Java,
создание приложений с графическим интерфейсом, создание апплетов, работа в
JBuilder от Borland'а, сетевые приложения.