ВНИМАНИЕ! Конкурс по программированию!

Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости
 (голосов: 1)

Урок 11. Конструкторы классов

Категория: Программирование » C# » Уроки C#

Для начала кратко обсудим, что такое конструктор вообще. Конструктор – это функция (метод) класса. Раз эта функция, то описываем мы ее почти точно так же, как и любую другую функцию класса – пишем параметры в круглых скобках и т. п. Когда конструктор вызывается? В момент создания переменной. При этом у класса может быть несколько конструкторов – но при этом они должны различаться или типом параметров, или их количеством.

Этот урок будет основан на предыдущем. Откройте проект, созданный на прошлом уроке. Давайте добавим в наш класс Worker конструктор:


    ...
    class Worker
    {
        public int age=3;
        public string name;
        //Конструктор 1
        public Worker(int age, string name)
        {
            this.age=age;
            this.name=name;
        }
    }
    ...



Обратите внимание на ряд особенностей конструктора. Во-первых, конструктор называется как класс. Раз наш класс называется Worker, значит и конструктор должен называться точно также. И во-вторых, конструктор, в отличие от других методов класса, не возвращает никакого значения (даже типа void). Если вы знакомы с языком C++, то, несомненно, это вам все знакомо.

Что делает наш конструктор? Он записывает передаваемые в него параметры во внутренние переменные класса. Обратите внимание, что называются они одинаково – age и age, name и name. Компилятор сначала ищет локальную переменную с таким именем, и, если не находит, то переменную класса. Поэтому age (и name) – это передаваемый в конструктор параметр. Если же нам надо сослаться на переменную класса (при существавании переменной с таким же именем, как и передаваемый в функцию параметр), то мы используем ключевое слово this. Оно всегда указывает на текущий экземпляр нашего класса. Таким образом в строчках

...
            this.age=age;
            this.name=name;
...

 

мы передаем параметры конструктора в переменые класса.

Теперь изменим тестовый класс test следующим образом:

...
        static void Main(string[] args)
        {
            //Вызываем конструктор
            Worker wrk1 = new Worker(40, "Вася");
            Console.WriteLine(wrk1.name+", "+wrk1.age);
        }
...

 

Теперь после объявления переменной мы вызываем конструктор с двумя параметрами, который запишет в переменные age и name экземпляра класса Worker значания 40 и “Вася”. Строчкой ниже эти значения выводятся на экран.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *